約 5,618,330 件
https://w.atwiki.jp/goron/pages/355.html
設定項目 takeStreamImmediately Set whether the button to "Get stream" is pressed when entering the room. 0 for No,1 for Yes numbering Numbering the anonymous. 0 for No, 1 for Yes, 2 for a pseudo-white trip on all of them. clearBubble Press Enter once to turn off the speech bubble. 0 to Not turn off, 1 to Turn off notifyMention When Username Mention Sound (or Custom Mention Sound Pattern ) is ON and your name is called, also notify in the lower right corner. 0 for No notification, 1 for Notification only when inactive replyMsg When you click on the call notification, automatically reply. '', is no reply. 'n', is reply with n. notifyAccess Room entry/exit notification. 0 for no notification, 1 for notification only when active, 2 for notification only when inactive, 3 for always notification accessLog Enter/exit log. Do not output with 0, Output with 1. notifyStream Stream start notification. 0 for no notification, 1 for notification only when inactive. hairControl Naito Horison's hair control. 0 is the default, 1 never grows back, 2 absolutely grows back. autoBlock Automatic block. '' for nobody is blocked. Surround names with ' and separate them with commas. Example A name that includes both stinky dog and GYAHAHA is blank → 'stinky dog,GYAHAHA' RegExp使用可 roomColor 部屋の背景色を'#000000'みたいに書く ''で未指定 logWindowCSS ログ窓のCSSを``の間に書く userCSS ぽいぽいのCSSを``の間に書く
https://w.atwiki.jp/hondashi/pages/64.html
設定ファイルを使うと起動時に便利です。 自分でテキストファイルを作って、下のようにOverviewer起動時の引数で指定します。 overviewer.py --config=path/to/my_configfile 設定ファイルはPythonの構文規則に乗っています。 Pythonを知らなくても心配入りません、とてもシンプルです。 以下のサンプルに従うだけです。 シンプルな例 worlds["My world"] = "/home/username/server/world" renders["normalrender"] = { "world" "My world", "title" "Normal Render of My World", } outputdir = "/home/username/mcmap" この記述では、一つのワールドから一つレンダリングします。 2つのセクションが見てわかると思います。 ※予備知識:下に出てくる"dictionary"(辞書、ディクショナリ)とはPythonで使われるオブジェクトのこと。 詳しく知りたい人はググるべし。 https //www.google.co.jp/search?q=Python+dictionary 文字数少ないので以下"辞書"で The worlds dictionary ここではworlds辞書で"My world"にワールドデータのパス(level.datがあるディレクトリ)を指定してます。 "My world"というキーは好きなものに変えても大丈夫です。変数みたいなものですね。 後でrenders辞書のところで使うことになります。 ネザーや複数ワールドがある場合は複数のworlds辞書を記述する必要があります。 The renders dictionary renders辞書では一つのワールドから一つのディメンジョンをオプションを与えてレンダリングします。 renders辞書を複数記述すると、出来上がったマップを見た時にドロップボックスで選ぶ事ができるようになります。 複数のワールドをレンダリングしたり、同じワールドを違うオプションを付けてレンダリングしたりできます。 ちょっと複雑な例 worlds["survival"] = "/home/username/server/survivalworld" worlds["creative"] = "/home/username/server/creativeworld" renders["survivalday"] = { "world" "survival", "title" "Survival Daytime", "rendermode" smooth_lighting, "dimension" "overworld", } renders["survivalnight"] = { "world" "survival", "title" "Survival Nighttime", "rendermode" smooth_night, "dimension" "overworld", } renders["survivalnether"] = { "world" "survival", "title" "Survival Nether", "rendermode" nether_smooth_lighting, "dimension" "nether", } renders["creative"] = { "world" "creative", "title" "Creative", "rendermode" smooth_lighting, "dimension" "overworld", } outputdir = "/home/username/mcmap" texturepath = "/home/username/my_texture_pack.zip" この例では4つのマップをレンダリングします。 サバイバルの通常ワールドの昼夜、同ワールドのネザー、クリエイティブモードワールドの4つです。 それぞれディメンジョンを明示的に設定しています。 もし設定しなければデフォルトで通常ワールド(overworld)が使われます。 例えばネザーをレンダリングする時は必要になります。 また、rendermodeも違ったものを指定しています。 rendermodeとはどのようにレンダリングするかです。 Overviewerは様々な方法でレンダリング出来、沢山のプリセットがあります。 modeを任意で作成することもできます。 最後に、texturepathオプションを使っていますね。 レンダリングに使うテクスチャパックを指定します。 設定ファイル内の最上位で指定していることに注目、こうすることで全てのレンダリングに適用できます。 それぞれのrendersの中で指定することで、個別に指定することもできます。 動的な設定ファイル 動的にパラメータを取得できると便利です。 例えば、定期的に日付フォルダにバックアップを取りたい場合、その都度設定を変えなくても良い書き方があります。 下の例のように、環境変数を使うことで簡単に日付を取得出来ます。 この例はbashスクリプトからOverviewerを呼び出していますが、その他のシェルスクリプトや言語でも可能です。 起動用のbashスクリプト #!/bin/bash ## Add these lines to your bash script # Setting up an environment variable that child processes will inherit. # In this example, the map s path is not static and depends on the # previously set $timestamp var. MYWORLD_DIR=/path/to/map/backup/$timestamp/YourWorld export MYWORLD_DIR # Running the Overviewer overviewer.py --config=/path/to/yourConfig.py 設定ファイルyourConfig.pyの中身 ## A config file example # Importing the os python module import os # Retrieving the environment variable set up by the bash script worlds["My world"] = os.environ[ MYWORLD_DIR ] renders["normalrender"] = { "world" "My world", "title" "Normal Render of My World", } outputdir = "/home/username/mcmap" 設定ファイルの書式 設定ファイルはPythonのexecfile()で読み込めるような書式であれば、どんな処理を入れても構いません。 実行時に幾つかの(overviewer_core.rendermodesモジュールで定義された)ローカル辞書を与えます。 上のことがよく分からなければ、"key = value"という書式だけ覚えておけば良いです。 2つだけ違う書式のものがあり、"worlds"と"renders"です。 worlds 事前に空(から)の辞書として定義されていて、少なくとも1つ設定しなければなりません。 worldのパス(level.datのあるディレクトリ)を指定し、renders辞書で使用します。 例 worlds[ myworld ] = "/path/to/myworld" 少なくとも一つワールドを指定しなければなりません renders 事前に空(から)の辞書として定義されていて、少なくとも1つ設定しなければなりません。 Key(下の例の myrender )はjavascriptでレンダリングするときの識別子、及びタイルファイルを作るフォルダ名になり、設定必須です。 そのため、文字列はスペースや特殊文字無しのアルファベットのみにすべきです。 Valueはレンダリングの設定を決めます。 設定名 設定値,設定名; 設定値,… keyとvalueは下のレンダー辞書キーのセクションで。 例 renders[ myrender ] = { world myworld , title Minecraft Server Title , } 少なくとも一つレンダーを指定しなければなりません outputdir = " output directory path " レンダリングした画像を出力するディレクトリです 例 outputdir = "/path/to/output" 必須 processes = num_procs レンダリング時に動作するCPUコア数を指定する、指定しなければ全部使おうとする 起動時の--processes,-p オプションでも指定可 例 processes = 2 observer = observer object レンダリングの過程をどのように報告するかを設定します。 デフォルトで、プログレスバーを表示し、Windows以外では標準エラー出力をファイルにリダイレクトします。 大抵の人はデフォルトでOKですが、(Webサービス等のために)独自の報告を出したい人は特定のオブザーバを指定しましょう。 もし手動でオブザーバを指定したければ下のように記述してみましょう from observer import ProgressBarObserver() observer = ProgressBarObserver() 利用できるオブザーバには以下の3つの種類があります。 LoggingObserver 標準的で古いスタイルの出力で、出力をファイルにリダイレクトした時やWindowsで起動した時のデフォルトです。 ProgressBarObserver ターミナルで起動時のデフォルトで、テキストベースのプログレスバーや状態を表示します。 JSObserver(outputdir[, minrefresh][, messages]) 画面の右下に出力過程を表示します。 outputdir=" output_directory_path"Overviewerの出力ディレクトリです。outputdirと書いておいて、あとでoutputdir = " output directory path "と1行書くのがシンプルです。必須 minrefresh= seconds 情報をファイルに書き込んだり、ブラウザからリクエストされる最小の間隔 messages=dict(totalTiles= string ,renderCompleted= string ,renderProgress= string )表示されるメッセージをカスタムする。3つのメッセージは以下のように定義されてます。totalTiles="Rendering %d tiles" dにはレンダリング済みのタイル数が代入されます。 renderCompleted="Render completed in %02d %02d %02d" レンダリングにどれだけ時間がかかるか。代入値は順に時間・分・秒 renderProgress="Rendered %d of %d tiles (%d%%)" 順にレンダリング済みタイル数、総タイル数、完成割合(単位%) %dや%02dの書き方を詳しく知りたい人は 公式のドキュメント String Formatting Operations(英語)や "Python フォーマット"でググるを見てみて下さい from observer import JSObserver observer = JSObserver(outputdir, 10) customwebassets = " path to custom web assets " 出力ディレクトリにコピーするweb assetsのあるディレクトリを指定できます 指定したディレクトリの全てのファイルでデフォルトファイルを上書きします。 もしindex.htmlをカスタムした場合、下のものは置き換えられます {title}は Minecraft Overviewer {time}はレンダリングした日付と時刻に。例 Sun, 12 Aug 2012 15 25 40 BST {version}はOverviewerのバージョンに。例 0.9.276 (5ff9c50) レンダー辞書のキー レンダー辞書は設定キーに値を入れる辞書です。以下、設定キーを解説していきます。 注 すべてのキーは最上位の階層に記述することで全てのレンダーのデフォルトにすることができます。 例えば下の行を最上位に書くことで、すべてのレンダーで myworld を使用します。 world = myworld また、改めてworldを指定する必要がなくなります。 render[ arender ] = { title This render doesn t explicitly declare a world! , } world どのワールドをレンダリングするかをしていします。 ワールド辞書で指定した文字列を使いましょう。 必須 title 出来上がったマップ右上に表示される名前です。 複数レンダリングする場合はどんなマップなのかわかりやすい名前をつけると良いでしょう。 必須 dimension ワールドのどのディメンジョンをレンダリングするか指定します。 Minecraftではデフォルトで3つのディメンジョンがあります、Overworld(通常世界)、Nether(ネザー)、End(エンド)。 Bukkit鯖なら少し複雑になるでしょうが、通常はディメンジョンは1つなので、このオプションは無視して構いません。 この値は、次の3つのうちのどれか"overworld","nether","end"、もしくはディメンジョンのデータが入ってるフォルダ名(例"DIM-1")です。 注 もしネザーを選んだ場合はネザーのrendermodeにしなければなりません。そうしないとネザーの天井がレンダリングされます。 デフォルト "overworld" rendermode レンダーモードをたくさんある中から指定します。 値はレンダーモードオブジェクトだったり、文字列だったりします。 例 "rendermode" "normal", "normal"ライティング無しの普通のレンダリング。一番速いオプション。 "lighting"ブロッキーライティング有り。normalよりちょっと遅い。ゲーム内のスムーズライティング無しのと同じように見える "smooth_lighting"スムーズライティング有り。一番綺麗だけど遅い。ゲーム内のスムーズライティング有りのと同じように見える "night"夜間をブロッキーライティングでレンダリング。 "smooth_night"夜間をスムーズライティングでレンダリング。 "nether"ネザー用のノーマルライティングでレンダリング。ネザー以外のディメンジョンにも適用可能。normalと違う点は天井が剥がされて内部が見えるようになります。 注.レンダーモードをnetherにしたからといって、ネザーをレンダリングするわけではありません。 きちんとdimensionオプションで nether と指定しましょう。 "nether_lighting"ネザー用のブロッキーライティング。 "nether_smooth_lighting"ネザー用のスムーズライティング。 "cave"深さごとにブロックを色分けしてレンダリング。 デフォルト "normal" northdirection 北をどちらに向けてレンダリングするか。 以下の4つの値があります "upper-left" "upper-right" "lower-left" "lower-right" 順に左上、右上、左下、右下 デフォルト "upper-left" rerenderprob タイル内でブロックの変化がない場合にも再レンダリングされる確率 値は0から1の浮動小数点数でなければならない。 (追記 0から増やすメリットが分からない) デフォルト 0 imgformat タイルに使う画像のフォーマット。使えるのは"png","jpg","jpeg" デフォルト "png" imgquality タイルをJPEGで保存する場合の圧縮率(画質)。0から100の整数。 大きいほど、ノイズが減る・画質が上がるが、ファイルサイズが増える。 デフォルト 95 optimizeimg このオプションを使うと、別のツールをつかてpng画像を最適化してファイルサイズを小さくできます。 pngcrushとadvdefというソフトで、詳しい事はgoogleで http //www.google.co.jp/search?q=pngcrush http //www.google.co.jp/search?q=AdvanceCOMP+advdef (advdefの方はAdvanceCOMPという圧縮ソフト集みたいなモノの中の一つらしい) それぞれ、環境変数PATHの通ったとkろおや、/usr/binみたいな所に置かないとダメです。 値として、0;使わない 1 pngcrushを使う 2 advdefを使う 3;両方使う(非推奨) 使用することで、レンダリングに時間がかかるようになりますが、画質そのままでサイズが小さくなります。 デフォルト 0 bgcolor マップの背景色を設定します。 値はHTMLで使われている表記法か4組の(RGBA)表記法です。アルファチャンネルは0であるべきです。 デフォルト #1a1a1a defaultzoom マップを開いた時の拡大率です。0より大きくなければなりません。 デフォルト 1 base タイルのフォルダをリモートに設定します。マップ画像をリモートサーバに同期させる場合に便利です。 指定する場合タイルのフォルダまでを指定するのではなく、一つ上の階層を指定する。 例 "http //domain.com/map/world_day/"ではなく"http //domain.com/map/" texturepath レンダリングに使用するテクスチャパックを指定します。 フォルダかzipファイルを指定する。 crop 座標を設定して一定の範囲のみレンダリングすることができます。 書式は(min x, min z, max x, max z) 数値は、ゲーム内のF3キーで見られる座標です。 例えば(0,0)を中心に1000x1000の範囲だけレンダリングしたい場合は renders[ myrender ] = { world myworld , title "Cropped Example", crop (-500, -500, 500, 500), } このオプションの使い所といえば、誰かが遠出しすぎて不要な場所があったり、 小さい範囲を複数アングルでレンダリングしたりするときにに便利です。 +注 一度crop使ってレンダリングしてから、範囲変えて上書きはしない方がいい。みたいなこと書いてるけど省略 If you decide to change the bounds on a render, you may find it produces unexpected results. It is recommended to not change the crop settings once it has been rendered once. For an expansion to the bounds, because chunks in the new bounds have the same mtime as the old, tiles will not automatically be updated, leaving strange artifacts along the old border. You may need to use --forcerender to force those tiles to update. (You can use the forcerender option on just one render by adding forcerender True to that render’s configuration) For reductions to the bounds, you will need to render your map at least once with the --check-tiles mode activated, and then once with the --forcerender option. The first run will go and delete tiles that should no longer exist, while the second will render the tiles around the edge properly. Also see this faq entry. Sorry there’s no better way to handle these cases at the moment. It’s a tricky problem and nobody has devoted the effort to solve it yet. forcerender 値はboolean(trueかfalse) trueだと(というかfalse以外を書くと)更新が必要でなくても、無条件で再レンダリングされます。 ~ --forcerenderコマンドラインオプションと似てますが、こちらは設定ファイル内で複数レダリングする場合 すべて再レンダリングされ、無駄ができてしまいます。 forcerender Trueを一つだけに記述することで、それのみ強制再レンダリングし、残りは更新があった所のみになります。 このオプションは基本的にはつけたままにはせず、新しい設定にしてレンダリングし直したい時などに付けて、 終わったら外しておきます。そうしないと無駄が大きいです。 例 renders[ myrender ] = { world myworld , title "Forced Example", forcerender True, } changelist 文字列を設定し、そのファイル名ででテキストファイル出力します。 ファイルは更新のあった画像のリストとなっており、1行に1つづつファイルパスが記述されています。 複数のレンダーで同じファイルに出力することも可能です。 このファイルはOverviewerが起動されるたびにまっさらになります。 これは、ローカルでレンダリングしてアップロードするときなど、更新のある画像だけを扱いたい時に便利です。 markers マーカーや看板、面白そうなポイントを表示するのに使います。 値は辞書リストです。 注:詳しくはSigns and markersのセクションで デフォルト [](設定なし) poititle POI/マーカーのドロップダウンメニューの表示名を設定します。 デフォルト "Signs" overlay どのレンダーの上に重ねて表示するかを設定できます。 例えばA,B,Cとrenderがあって、Cのoverlayに["A","B"]とすると、AとBのマップをブラウザで見てる時に、 Overlaysというメニューが右上に出て、Cを重ねて見ることが出来る。 C単体では見られなくなる。 デフォルト;[](設定なし) showspawn 値はbooleanで、デフォルトはTrue。 Falseにすると初期スポーンエリアを示すアイコンが表示されなくなる。
https://w.atwiki.jp/guru/pages/89.html
{{{ # Doxyfile for Doxygen 1.7.4 ################################################################################ # Project ################################################################################ DOXYFILE_ENCODING = UTF-8 # このタグでは、設定ファイルのすべての文字に使うエンコードを指定します。 # デフォルトはUTF-8で、このタグが最初に指定される前のすべてのテキストもUTF-8です。 # Doxygenはlibiconv(libcにビルトインされているiconv)を使って変換しています。 # エンコードの種類については、http //www.gnu.org/software/libiconvを # 参照してください。 PROJECT_NAME = Doxygen Template Project # PROJECT_NAME タグは、一単語 (または、ダブルクォートで囲まれた複数単語)からなり、 # ドキュメントを生成しようとしているプロジェクトの名前となります。 # この名前は、生成されたほとんどのページのタイトルとして使われます。 # また、少数ですが、別の場所でも使われます。 PROJECT_NUMBER = 1.0.0 # PROJECT_NUMBER タグは、プロジェクト番号やリビジョン番号を入れるのに使えます。 # 生成されたドキュメントを保管したり、バージョン管理システムを使うような # 場合に役立つでしょう。 PROJECT_BRIEF = Doxygenのテンプレート用プロジェクトファイルです。 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_LOGO = icon32.png # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. OUTPUT_DIRECTORY = ./doc # OUTPUT_DIRECTORY タグは生成されたドキュメントが置かれるベースパス # (相対パスあるいは絶対パス)を指定するために使います。 # 相対パスを指定した場合は、doxygen を実行した場所からの相対パスとなります。 # 空白のままにした場合は、カレントディレクトリが使用されます。 CREATE_SUBDIRS = YES # CREATE_SUBDIRS タグが YES であれば、4096 サブディレクトリ (2段階で) を # それぞれの出力形式のディレクトリ下に作成し、そこに生成したファイルを分配します。 # このオプションは、doxygenに大量のソースファイルを与えたい場合に有用です。 # 生成される全ファイルを同じディレクトリに排出するとファイルシステムの # パフォーマンスに問題を起こす恐れがあります。 OUTPUT_LANGUAGE = Japanese # OUTPUT_LANGUAGE タグは、doxygen によって生成されるあらゆるドキュメントの # 記述言語を指定します。Doxygen は、この情報を使って、すべての既定の文言を # 適切な言語で生成します。 デフォルトの言語は、English (英語) です。 # 他にサポートされている言語は 次のとおり # Afrikaans (アフリカーンス語) # Arabic (アラビア語) # Brazilian (ブラジル・ポルトガル語) # Catalan (カタロニア語) # Chinese (中国語) # Croatian (クロアチア語) # Czech (チェコ語) # Danish (デンマーク語) # Dutch (オランダ語) # Finnish (フィン語) # French (フランス語) # German (ドイツ語) # Greek (ギリシャ語) # Hungarian (ハンガリー語) # Italian (イタリア語) # Japanese (日本語) # Korean (韓国語) # Lithuanian (リトアニア語) # Norwegian (ノルウェー語) # Persian (ペルシア語) # Polish (ポーランド語) # Portuguese (ポルトガル語) # Romanian (ルーマニア語) # Russian (ロシア語) # Serbian (セルビア語) # Slovak (スロヴァキア語) # Slovene (スロヴェニア語) # Spanish (スペイン語) # Swedish (スウェーデン語) # Ukrainian (ウクライナ語) BRIEF_MEMBER_DESC = YES # BRIEF_MEMBER_DESC タグが YES (デフォルト)であれば、ファイルやクラスの # ドキュメントの中で、リストしたメンバーの後に要約説明を置きます (JavaDoc 類似)。 # NO に設定すると、この機能は無効になります。 REPEAT_BRIEF = YES # REPEAT_BRIEF タグが YES (デフォルト) であれば、メンバーや関数についての # 要約説明を、詳細説明の前に置きます。 # メモ # HIDE_UNDOC_MEMBERS と BRIEF_MEMBER_DESC の両方が NO に設定された場合は、 # 要約説明は完全に抑制されます。 ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # このタグは、いろいろなリストでテキストを整形するために使う、ある程度識別力の # ある、要約説明略語化機能です。 指定したリストの各文字列を要約説明中の # 主要テキストとして認識すると、テキストから除去し、リスト全体を処理した後 # 注釈付きテキストとして扱います。 主要テキストとして認識できないときは、 # 要約説明は原文のまま扱います。 このタグが空白の場合は、次の値を使用します # ("\$name"は自動的に実体名に置き換わる)。 "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" "represents" "a" "an" # "the" ALWAYS_DETAILED_SEC = NO # ALWAYS_DETAILED_SEC タグ と REPEAT_BRIEF タグの両方が YES であれば、 # 要約説明しかなくても詳細説明セクションを生成します。 INLINE_INHERITED_MEMB = NO # INLINE_INHERITED_MEMB タグが YES であれば、クラスのドキュメントにおいて、 # そのクラスの継承メンバー全部を、正規のクラスメンバーのように見せます。 # 基底クラスのコンストラクタ、デストラクタ、代入演算子は表示されません。 FULL_PATH_NAMES = YES # FULL_PATH_NAMES タグが YES であれば、ファイルリストやヘッダーファイルにおいて、 # ファイル名の前にフルパスを付加します。 NO に設定すると、ファイル名を一意にする # に充分なだけの最も短いパスが付加されます。 STRIP_FROM_PATH = # FULL_PATH_NAMES タグが YES であれば、STRIP_FROM_PATH タグを定義することに # よって、フルパスの一部を除去することができます。除去するのは、パスの先頭部分が # 定義された文字列の一つにマッチした場合だけです。 ファイルリストで相対パスを # 示すのに用いることもできます。 空白にすると、起動ディレクトリを除去します。 STRIP_FROM_INC_PATH = # ドキュメントのリーダがクラスを利用する際にインクルードするヘッダファイルの # パスから、一部を除去するために使います。 空白であれば、クラス定義を含む # ヘッダファイルの名前だけが使われます。 指定する場合は、通常 -I フラグで # コンパイラに渡すインクルードパスを指定してください。 SHORT_NAMES = NO # SHORT_NAMES タグが YES であれば、ファイル名をかなり短くします。そのかわり # 読みにくくなります。 これは、DOS、Mac、CD-ROM といった、長い名前をサポート # していないファイルシステムを使用する場合に有用です。 JAVADOC_AUTOBRIEF = NO # JAVADOC_AUTOBRIEF タグが YES であれば、JavaDoc スタイルのコメントの先頭行 # (最初の . まで) を要約説明と解釈します。 NO (デフォルト) に設定すると、 # JavaDoc スタイルは、Qt スタイルのコメントと同じように扱います(要約説明として # 扱うには @brief コマンドを指定する必要があります)。 QT_AUTOBRIEF = NO # QT_AUTOBRIEF タグを YES であれば、Qt スタイルコメントの先頭行 (最初の . まで) # を要約説明と解釈します。 NO (デフォルト) に設定すると、Qt スタイルは、通常の # Qt スタイルコメントと同じように扱います(要約説明として扱うには \brief コマンド # を指定する必要があります)。 MULTILINE_CPP_IS_BRIEF = NO # MULTILINE_CPP_IS_BRIEF タグを YES にすると、複数行 C++ 特別コメントブロック # (//! や /// コメントのブロック) を要約説明として扱います。これは以前の # デフォルトの振る舞いでした。新しいデフォルトでは、複数行の C++ コメント # ブロックを詳細説明として扱います。以前の振る舞いが好みならこのタグを YES に # してください。ただし、rational rose コメントは認識しなくなります。 INHERIT_DOCS = YES # INHERIT_DOCSタグを YES (デフォルト)にすると、ドキュメントがないメンバーの場合、 # 再実装するメンバーからドキュメントを引き継いできます。 SEPARATE_MEMBER_PAGES = NO # SEPARATE_MEMBER_PAGES タグを YES にすると、各メンバーにページを割り当てます。 # NOにすると、メンバーのドキュメントは、それを内包するファイル・クラス・ # 名前空間の一部になります。 TAB_SIZE = 4 # TAB_SIZE タグは、タブの幅 (スペースの数) を設定します。 doxygen は、 # この値を使用して、コード片においてタブをスペースに置換します。 ALIASES = # このタグは、ドキュメント内でコマンドとして振る舞うような、いくつかの別名を # 記述するのに使用されます。別名は、次の形式をしています。 # 名前=値 # たとえば、次の行を追加すると、 # "sideeffect=\par Side Effects \n" # ドキュメント内で \sideeffect (or @sideeffect) というコマンドが使えるように # なります。このコマンドは、結果として、"Side Effects " という見出しを持つ # ユーザ定義のパラグラフを生成します。 別名の値のところに \n を置くと改行が # 挿入されます。 OPTIMIZE_OUTPUT_FOR_C = NO # プロジェクトが C のソースだけからなっている場合は、OPTIMIZE_OUTPUT_FOR_C タグ # を YES に設定してください。 doxygen は、より C に適合した出力を生成します。 # たとえば、使用される名前のいくつかが異なっていたり、全メンバーのリストが # 省略される、など。 OPTIMIZE_OUTPUT_JAVA = NO # JavaやPythonのソースだけでプロジェクトを構成している場合は、 # OPTIMIZE_OUTPUT_JAVA タグを YES にしてください。すると、その言語により # 適合した出力を生成します。たとえば、名前空間はパッケージとして提示され、 # 修飾スコープは別の形で提示されるなど。 OPTIMIZE_FOR_FORTRAN = NO # Fortranソースで構成されるプロジェクトの場合は、OPTIMIZE_FOR_FORTRAN タグを # YES にしてください。Fortranに適合した出力をします。 OPTIMIZE_OUTPUT_VHDL = NO # VHDLソースで構成されるプロジェクトの場合は、OPTIMIZE_OUTPUT_VHDL タグを # YES にしてください。DoxygenはVHDLに適合した出力をします。 EXTENSION_MAPPING = # Doxygenでは、解析するファイルの拡張子にしたがって、パーサーを選択します。 # このタグを使って、与えられた拡張子についてどのパーサを使うかを指定できます。 # # Doxygenには組み込みの仕様がありますが、このタグを使えば上書きまたは拡張 # できます。 指定方式は、ext=languageで、ext にはファイル拡張子を、 # languageにはパーサを指定します。languageは次のうちどれかです。 # IDL, Java, Javascript, C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, # C, C++。 たとえば .incファイル(デフォルトはPHP)をFortranファイルとして扱い、 # .fファイル(デフォルトはFortran)をCファイルとして扱うには、inc=Fortran f=C # とします。 BUILTIN_STL_SUPPORT = NO # STLクラス (std string, std vector など) を使っていても、STLソース # (そのタグファイル) を入力としてインクルードしたくない場合は、このタグを # YES にしてください。 するとdoxygenは、STLクラスを引数に含む関数宣言と定義 # (たとえば、func(std string); と func(std string) {}) をマッチングします。 # また、STLクラスを含む継承・コラボレーション図をより完璧で正確にすることも # できます。 CPP_CLI_SUPPORT = NO # Microsoftの C++/CLI 言語を使う場合は、解析を有効にするためこのオプションを # YESにしてください。 SIP_SUPPORT = NO # sipソースのみでプロジェクトを構成している場合は、SIP_SUPPORTタグをYESに # してください。 すると、通常のC++同様に解析しますが、保護レベルを明示して # いない限り、すべてのクラスをprivateでなくpublic継承を使っているものと # 想定します。 IDL_PROPERTY_SUPPORT = YES # MicrosoftのIDLには、属性のget/setメソッドを示すためのpropget/propput属性が # あります。このオプションを YES (デフォルト)にすると、説明の中のプロパティで # get/setメソッドを入れ替えることができます。ただし、メソッドが単純なタイプを # get/setしている場合だけです。そうでない場合や、メソッドを表示したい場合は、 # このオプションをNOにしてください。 DISTRIBUTE_GROUP_DOC = NO # メンバーのグループ化がドキュメント内で使われており、DISTRIBUTE_GROUP_DOC タグ # が YES であれば、グループ内の最初のメンバーのドキュメント (もしあれば) を、 # そのグループの他のメンバーに対して再利用します。デフォルトでは、グループ内の # すべてのメンバーは、明示的にドキュメント付られている必要があります。 SUBGROUPING = YES # SUBGROUPING タグを YES (デフォルト) にすると、同じタイプのクラスメンバー # グループ (public 関数群など)が、そのタイプのサブグループ(Public関数セクション # など)として扱われます。サブグループ化を避けるには NO にしてください。 これは、 # クラスごとに\nosubgrouping コマンドを使ってもできます。 INLINE_GROUPED_CLASSES = NO # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and # unions are shown inside the group in which they are included (e.g. using # @ingroup) instead of on a separate page (for HTML and Man pages) or # section (for LaTeX and RTF). TYPEDEF_HIDES_STRUCT = NO # TYPEDEF_HIDES_STRUCT を YES にすると、struct, union, enum の typedef は、 # typedef の名をつけて、struct, union, enum としてドキュメント出力されます。 # typedef struct TypeS {} TypeTという構造の場合は、TypeTという名の struct として # 出力されます。 TYPEDEF_HIDES_STRUCT を NO にすると、typedef は、ファイル、 # 名前空間、またはクラスのメンバーとして出力されます。struct は TypeS という名で # 出力されます。 C言語で、コーディング規約によって複合型はすべて typedef で定義 # され、typedef だけが参照され、タグ名は参照されない場合に、有用です。 EXTRACT_ALL = NO # SYMBOL_CACHE_SIZEを指定したサイズは、内部キャッシュのサイズで、これにより # どのシンボルを残し、どのシンボルをディスクにフラッシュするかが決まります。 # キャッシュが満杯の場合は、使用回数の少ないシンボルからディスクに書き出されます。 # 中小規模のプロジェクト(入力ファイルが1000未満)の場合、デフォルトの値で十分で # しょう。大規模プロジェクトの場合、キャッシュサイズが小さすぎると、ディスクとの # 間のシンボルスワッピングに追われてしまい、パフォーマンスがかなり悪くなる # 可能性があります。 システムの物理メモリサイズが充分であれば、キャッシュサイズ # を増やせば、メモリにシンボルをより残せるのでパフォーマンスが改善するでしょう。 # 値は対数スケールで働くので、1増やせばメモリ使用がほぼ倍増します。キャッシュ # サイズは次の式で与えられます。 $2^{(16+\mbox{SYMBOL\_CACHE\_SIZE})}$ $2^{16} # = 65536$ シンボルのキャッシュサイズにしたがって、有効な範囲は、0から9で、デフォルトは0です。 ################################################################################ # Build ################################################################################ # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # anonymous_namespace{file} , where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function s detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even # if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file , where command is the value of # the FILE_VERSION_FILTER tag, and input-file is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen s defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don t exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file $line $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http //www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox \ *.py \ *.f90 \ *.f \ *.for \ *.vhd \ *.vhdl # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples ANamespace, AClass, # AClass ANamespace, ANamespace *Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command filter input-file , where filter # is the value of the INPUT_FILTER tag, and input-file is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU s global source # tagging system (see http //www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. Note that when using a custom header you are responsible # for the proper inclusion of any scripts and style sheets that doxygen # needs, which is dependent on the configuration options used. # It is adviced to generate a default header using "doxygen -w html # header.html footer.html stylesheet.css YourConfigFile" and then modify # that header. Note that the header is subject to change so you typically # have to redo this when upgrading to a newer version of doxygen or when # changing the value of configuration settings such as GENERATE_TREEVIEW! HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don t put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that # the files will be copied as-is; there are no commands or markers available. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http //en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple s Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http //developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt s qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http //doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http //doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http //doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # a href="http //doc.trolltech.com/qthelpproject.html#custom-filters" # Qt Help Project / Custom Filters /a . QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project s # filter section matches. # a href="http //doc.trolltech.com/qthelpproject.html#filter-attributes" # Qt Help Project / Filter Attributes /a . QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt s qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values # (range [0,1..20]) that doxygen will group on one line in the generated HTML # documentation. Note that a value of 0 will completely suppress the enum # values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http //www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the # mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http //www.mathjax.org/mathjax # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice only use this tag if you know what you are doing! LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for # the generated latex document. The footer should contain everything after # the last chapter. If it is left blank doxygen will generate a # standard footer. Notice only use this tag if you know what you are doing! LATEX_FOOTER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen s # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen s config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine s section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don t overwrite each other s variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the = operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen s preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project s groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl ). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http //www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called Helvetica to the output # directory and reference it in all dot files that doxygen generates. # When you want a differently looking font you can specify the font name # using DOT_FONTNAME. You need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG s Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot ( 1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES }}}
https://w.atwiki.jp/know-unix/pages/48.html
PowerBook G3 Pismo (G4 550MHz) で再生できる設定 Pismo ではh264とmkvでは無理。mpeg4とaviでエンコする事。 ffmpeg -i "input file" -b 3000k -s hd480 -ab 192k "output file" "-formats" でエンコード・デコード出来る種類確認出来る XBMC4XBOXでは720が再生出来るとされているがこれまたmpeg4とavi限定。 h264でファイルサイズを小さくしたい場合はhd480でエンコすればmkvでもxboxで再生可能。 その場合使う設定は以下: ffmpeg -i "your input file" -vcodec libx264 -s hd480 -acodec libfaac "your output file" ※なおh264を指定する場合今までのh264からlibx264へ代わった事に注目すべき。 http //wiki.xbmc.org/index.php?title=HOW-TO Use_Handbrake_on_Mac_to_encode_H.264_videos http //www.xbmc4xbox.org.uk/forum/viewtopic.php?t=1571 p=13475 Xbox のみを対象にする場合 Handbrake でエンコードしたほうが楽。 ーーーーーーーーーーーーーーーーーーーーー Xbox 動画考察 ーーーーーーーーーーーーーーーーーーーーー Xbox は非力なため動画の品質と容量のバランスに加えて、再生負荷も考慮する必要がある。 Handbrake でエンコする際負荷の少ないMPEG-4(FFMPEG)を選択するが(H.264に比べて)、その際 Constant Quality を選択するか Avg Bitrate を選択するかが課題となる。Avg を選択した場合容量は一定するが品質が一定しない。反面 CQ を選択すると容量にバラツキが生じ再生負荷も不均一となるが品質は一定する傾向にある。 試しに CQ の設定を 3 及び 1 で試してみるが負荷が高いせいか Xbox がフリーズする場面があった。6 に設定したところ現在までに問題は見受けられない。ファイル容量も25分程度の動画で180MBと比較的低い。しかしAvgで3000に設定した場合と比べると品質にやや難がある。とは言え480iのブラウン管では見分けがつかない(液晶PCモニタでは多少見劣りする)。 結局のところAvg 3000の方がごく僅かに画質が良く、海外ユーザーの間でも使用者が多いようなのでそちらにするか。 よって以下の設定を適用: Video settings | MPEG- 4 (Ffmpeg) / Average bitrate 3000kbps / Framerate (same as source) / (optional 2 pass encoding) Audio settings | Codec - auto passthru Subtitles | as you wish Chapters | as you wish Advanced | -maxrate 5000k -bufsize 4096k 結論: ISO状態のファイルは超高画質な上何ら問題なくXboxで再生できるのでそのままの状態を維持。他高解像度のMKVファイル等、Xboxでの再生に問題のあるファイルはHandbrakeにてエンコードする。その際の設定は上記に準じる。 ーーーーーーーーーーーーーーーーーーーーー This should still work on Handbrake for Windows or Linux but you may have to input the setting manually and save it. Some users have been unable to load the supplied preset on Windows. Tools VLC - Site or direct download for 64 Bit Mac Build 1.0.2 here Handbrake - Site Extras Handbrake Presets High Quality Low Quality (This is just a lower constant quality with MP3 audio) Or manually input this string and settings into the Advanced Settings box ref=2 me=hex bframes=3 8x8dct=0 subq=9 vbv-maxrate=2200 vbv-bufsize=2200 weightb=0 analyse=none no-dct-decimate=1 cabac=0 b-pyramid=none weightp=0 HB-advancedlarge.png Info For this encoding process I have prioritised video quality over file size. This is for encoding DVD sources to be used on the original xbox running xbmc. It uses the x264 codec so bitrate and advanced options have to be set specifically to allow it to run on old hardware. This is for use with AC3 or DTS passthrough. You can try it with MP3 or AAC audio, but no guarantees as this will require CPU for decoding. 1. Download VLC and Handbrake. Install them. On the Mac I would recommend running the 64 bit VLC build. 2. Download the Handbrake Presets and import them into Handbrake. 3. Load your source into Handbrake. You can rip straight from DVD using Handbrake, or load DVD images you have ripped previously with your ripper of choice. 4. Make sure you have either xbox-x264 or xbox-x264-LQ preset selected. 5. Make sure container is MKV. Audio is AC3 or DTS Passthrough. 6. You have to change some of the advanced settings if you used the presets in the attachments in the latest versions of Handbrake, since some of the defaults have been changed recently. Add " b-pyramid=none weightp=0" to the String you see in the bottom or uncheck "Weighted P-frames" and set "Pyramidal B-Frames" to off. end of line
https://w.atwiki.jp/nicoratch/pages/1058.html
概要 本体は2chだがスイッチでA/CデッキとB/Dを切り替えることにより4ch操作可能。 VirtualDJ 7 LE同梱。 スペック表 TECHNICAL SPECIFICATIONS Built-in audio 4-channel output stereo line output for the mix, stereo headphone output for previewing tracks Microphone input input with talk-over function No need to carry an audio interface Large DJ controller Same size as DJ Console Rmx 35x25cm (13.7x9.8") Large for mixing, compact enough for mobile use Lightweight 2 kg/4.4 lbs USB bus-powered no need for a power plug Jog wheels Touch detection activated by weight of user’s hand Large 12cm (4.7") diameter/1.5cm (0.6") height 2- 4-deck control (A/B/C/D) 2-deck controls + 2 deck switches convert deck A into C, and deck B into D = control 4 virtual decks Deck switches convert all deck controls into another set of MIDI commands, + mixer volume and EQ controls Deck viewers lights up the letter of the controlled deck Backlighting color of jog wheels changes, to indicate which virtual deck is being controlled User-friendly Comfortable mixing Well-spaced controls Large, non-slip feet Software included VirtualDJ 7 LE DJC BOX CONTENTS USB bus-powered controller 2 decks + mixer controls 4-channel out (stereo out for mix + stereo out for preview) / 1-channel in (microphone) Drivers MIDI control in Mac OS/Windows Audio drivers Core Audio® (Mac OS) WDM/ASIO (Windows) MINIMUM CONFIGURATION Computer with 1GB RAM CD- or DVD-ROM drive Powered USB port 100MB hard drive space Internet access (for software or driver updates) For Windows XP/Vista/7 / 8 (32- 64-bit) 1.5GHz CPU (Atom®, Core Duo®, Athlon®) For Mac OS® 10.5/10.6 (32-bit) 1.5GHz Core Duo® CPU 価格 £229.99 DJ4Set http //www.hercules.com/uk/legacy/bdd/p/146/hercules-dj-4set/
https://w.atwiki.jp/terragen3/pages/74.html
Node Type Render Node Description and Purpose The Render node is one of the main nodes in Terragen 2. The Render node contains the settings used to produce final renders and is also used to start rendering animation sequences. The Render node works in concert with the Camera node to create a render of your scene from a specific perspective. Basic controls include the Width and Height of your output image, the camera from which your scene will be rendered, overall scene Detail, and Antialiasing. Many additional controls for fine-tuning scene detail and quality are also provided, including Global Illumination (GI) settings, as well as Contrast and Gamma Correction functions. You can also render partial crops of your select cameras view using the Crop Region functions. Sequence/Output allows you to output a sequence of images for animation (only functional in Animation version). When you start a new project in TG2 there are two render nodes created for you. One is called "Full Render" and the other is called "Quick Render". Both of these nodes are Render nodes. The difference between them is that "Full Render" has preset settings more suitable to a final render whereas "Quick Render" has lower quality presets suitable for a quick preview render. Settings Master Check this to make the node the Master render node. The Master render node is the one which will be used to render projects loaded from the command line or a batch file. Image width This param sets the width of the rendered image. Image height This param sets the height of the rendered image. Lock aspect ratio If this is checked then the image aspect ratio is locked. When you make changes to the image width or height the other param will be changed so that the aspect ratio of the image is maintained. Aspect ratio You can change the aspect ratio for the image using the controls under the Lock aspect ratio param. Values greater than 1 will make the image wider and values less than 1 will make the image taller. Camera This param sets the Camera node used for rendering the image. A Render node must have a camera assigned to it before it can render. Surfaces visible If this is unchecked surfaces are not rendered. Atmosphere visible If this is unchecked the atmosphere is not rendered. This might be useful if you are rendering orthographic images for texture overlays in another application, for example. Do shadows Uncheck this to stop shadows rendering. Render Image Clicking this button will start the render.
https://w.atwiki.jp/alphaomega/pages/60.html
youtube-dl - download videos from youtube.com or other video platforms INSTALLATION DESCRIPTION OPTIONS CONFIGURATION OUTPUT TEMPLATE FORMAT SELECTION VIDEO SELECTION FAQ DEVELOPER INSTRUCTIONS EMBEDDING YOUTUBE-DL BUGS COPYRIGHT INSTALLATION To install it right away for all UNIX users (Linux, macOS, etc.), type sudo curl -L https //yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl If you do not have curl, you can alternatively use a recent wget sudo wget https //yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl Windows users can download an .exe file and place it in any location on their PATH except for %SYSTEMROOT%\System32 (e.g. do not put in C \Windows\System32). You can also use pip sudo -H pip install --upgrade youtube-dl This command will update youtube-dl if you have already installed it. See the pypi page for more information. macOS users can install youtube-dl with Homebrew brew install youtube-dl Or with MacPorts sudo port install youtube-dl Alternatively, refer to the developer instructions for how to check out and work with the git repository. For further options, including PGP signatures, see the youtube-dl Download Page. DESCRIPTION youtube-dl is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on macOS. It is released to the public domain, which means you can modify it, redistribute it or use it however you like. youtube-dl [OPTIONS] URL [URL...] OPTIONS -h, --help Print this help text and exit --version Print program version and exit -U, --update Update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed) -i, --ignore-errors Continue on download errors, for example to skip unavailable videos in a playlist --abort-on-error Abort downloading of further videos (in the playlist or the command line) if an error occurs --dump-user-agent Display the current browser identification --list-extractors List all supported extractors --extractor-descriptions Output descriptions of all supported extractors --force-generic-extractor Force extraction to use the generic extractor --default-search PREFIX Use this prefix for unqualified URLs. For example gvsearch2 downloads two videos from google videos for youtube-dl large apple . Use the value auto to let youtube-dl guess ( auto_warning to emit a warning when guessing). error just throws an error. The default value fixup_error repairs broken URLs, but emits an error if this is not possible instead of searching. --ignore-config Do not read configuration files. When given in the global configuration file /etc/youtube-dl.conf Do not read the user configuration in ~/.config/youtube- dl/config (%APPDATA%/youtube-dl/config.txt on Windows) --config-location PATH Location of the configuration file; either the path to the config or its containing directory. --flat-playlist Do not extract the videos of a playlist, only list them. --mark-watched Mark videos watched (YouTube only) --no-mark-watched Do not mark videos watched (YouTube only) --no-color Do not emit color codes in output Network Options --proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme. For example socks5 //127.0.0.1 1080/. Pass in an empty string (--proxy ) for direct connection --socket-timeout SECONDS Time to wait before giving up, in seconds --source-address IP Client-side IP address to bind to -4, --force-ipv4 Make all connections via IPv4 -6, --force-ipv6 Make all connections via IPv6 Geo Restriction --geo-verification-proxy URL Use this proxy to verify the IP address for some geo-restricted sites. The default proxy specified by --proxy (or none, if the option is not present) is used for the actual downloading. --geo-bypass Bypass geographic restriction via faking X-Forwarded-For HTTP header --no-geo-bypass Do not bypass geographic restriction via faking X-Forwarded-For HTTP header --geo-bypass-country CODE Force bypass geographic restriction with explicitly provided two-letter ISO 3166-2 country code --geo-bypass-ip-block IP_BLOCK Force bypass geographic restriction with explicitly provided IP block in CIDR notation Video Selection --playlist-start NUMBER Playlist video to start at (default is 1) --playlist-end NUMBER Playlist video to end at (default is last) --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist separated by commas like --playlist-items 1,2,5,8 if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range --playlist-items 1-3,7,10-13 , it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13. --match-title REGEX Download only matching titles (regex or caseless sub-string) --reject-title REGEX Skip download for matching titles (regex or caseless sub-string) --max-downloads NUMBER Abort after downloading NUMBER files --min-filesize SIZE Do not download any videos smaller than SIZE (e.g. 50k or 44.6m) --max-filesize SIZE Do not download any videos larger than SIZE (e.g. 50k or 44.6m) --date DATE Download only videos uploaded in this date --datebefore DATE Download only videos uploaded on or before this date (i.e. inclusive) --dateafter DATE Download only videos uploaded on or after this date (i.e. inclusive) --min-views COUNT Do not download any videos with less than COUNT views --max-views COUNT Do not download any videos with more than COUNT views --match-filter FILTER Generic video filter. Specify any key (see the OUTPUT TEMPLATE for a list of available keys) to match if the key is present, !key to check if the key is not present, key NUMBER (like comment_count 12 , also works with =, , =, !=, =) to compare against a number, key = LITERAL (like uploader = Mike Smith , also works with !=) to match against a string literal and to require multiple matches. Values which are not known are excluded unless you put a question mark (?) after the operator. For example, to only match videos that have been liked more than 100 times and disliked less than 50 times (or the dislike functionality is not available at the given service), but who also have a description, use --match-filter like_count 100 dislike_count ? 50 description . --no-playlist Download only the video, if the URL refers to a video and a playlist. --yes-playlist Download the playlist, if the URL refers to a video and a playlist. --age-limit YEARS Download only videos suitable for the given age --download-archive FILE Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it. --include-ads Download advertisements as well (experimental) Download Options -r, --limit-rate RATE Maximum download rate in bytes per second (e.g. 50K or 4.2M) -R, --retries RETRIES Number of retries (default is 10), or infinite . --fragment-retries RETRIES Number of retries for a fragment (default is 10), or infinite (DASH, hlsnative and ISM) --skip-unavailable-fragments Skip unavailable fragments (DASH, hlsnative and ISM) --abort-on-unavailable-fragment Abort downloading when some fragment is not available --keep-fragments Keep downloaded fragments on disk after downloading is finished; fragments are erased by default --buffer-size SIZE Size of download buffer (e.g. 1024 or 16K) (default is 1024) --no-resize-buffer Do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE. --http-chunk-size SIZE Size of a chunk for chunk-based HTTP downloading (e.g. 10485760 or 10M) (default is disabled). May be useful for bypassing bandwidth throttling imposed by a webserver (experimental) --playlist-reverse Download playlist videos in reverse order --playlist-random Download playlist videos in random order --xattr-set-filesize Set file xattribute ytdl.filesize with expected file size --hls-prefer-native Use the native HLS downloader instead of ffmpeg --hls-prefer-ffmpeg Use ffmpeg instead of the native HLS downloader --hls-use-mpegts Use the mpegts container for HLS videos, allowing to play the video while downloading (some players may not be able to play it) --external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget --external-downloader-args ARGS Give these arguments to the external downloader Filesystem Options -a, --batch-file FILE File containing URLs to download ( - for stdin), one URL per line. Lines starting with # , ; or ] are considered as comments and ignored. --id Use only video ID in file name -o, --output TEMPLATE Output filename template, see the OUTPUT TEMPLATE for all the info --autonumber-start NUMBER Specify the start value for %(autonumber)s (default is 1) --restrict-filenames Restrict filenames to only ASCII characters, and avoid and spaces in filenames -w, --no-overwrites Do not overwrite files -c, --continue Force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible. --no-continue Do not resume partially downloaded files (restart from beginning) --no-part Do not use .part files - write directly into output file --no-mtime Do not use the Last-modified header to set the file modification time --write-description Write video description to a .description file --write-info-json Write video metadata to a .info.json file --write-annotations Write video annotations to a .annotations.xml file --load-info-json FILE JSON file containing the video information (created with the --write-info-json option) --cookies FILE File to read cookies from and dump cookie jar in --cache-dir DIR Location in the filesystem where youtube-dl can store some downloaded information permanently. By default $XDG_CACHE_HOME/youtube-dl or ~/.cache/youtube-dl . At the moment, only YouTube player files (for videos with obfuscated signatures) are cached, but that may change. --no-cache-dir Disable filesystem caching --rm-cache-dir Delete all filesystem cache files Thumbnail images --write-thumbnail Write thumbnail image to disk --write-all-thumbnails Write all thumbnail image formats to disk --list-thumbnails Simulate and list all available thumbnail formats Verbosity / Simulation Options -q, --quiet Activate quiet mode --no-warnings Ignore warnings -s, --simulate Do not download the video and do not write anything to disk --skip-download Do not download the video -g, --get-url Simulate, quiet but print URL -e, --get-title Simulate, quiet but print title --get-id Simulate, quiet but print id --get-thumbnail Simulate, quiet but print thumbnail URL --get-description Simulate, quiet but print video description --get-duration Simulate, quiet but print video length --get-filename Simulate, quiet but print output filename --get-format Simulate, quiet but print output format -j, --dump-json Simulate, quiet but print JSON information. See the OUTPUT TEMPLATE for a description of available keys. -J, --dump-single-json Simulate, quiet but print JSON information for each command-line argument. If the URL refers to a playlist, dump the whole playlist information in a single line. --print-json Be quiet and print the video information as JSON (video is still being downloaded). --newline Output progress bar as new lines --no-progress Do not print progress bar --console-title Display progress in console titlebar -v, --verbose Print various debugging information --dump-pages Print downloaded pages encoded using base64 to debug problems (very verbose) --write-pages Write downloaded intermediary pages to files in the current directory to debug problems --print-traffic Display sent and read HTTP traffic -C, --call-home Contact the youtube-dl server for debugging --no-call-home Do NOT contact the youtube-dl server for debugging Workarounds --encoding ENCODING Force the specified encoding (experimental) --no-check-certificate Suppress HTTPS certificate validation --prefer-insecure Use an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube) --user-agent UA Specify a custom user agent --referer URL Specify a custom referer, use if the video access is restricted to one domain --add-header FIELD VALUE Specify a custom HTTP header and its value, separated by a colon . You can use this option multiple times --bidi-workaround Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH --sleep-interval SECONDS Number of seconds to sleep before each download when used alone or a lower bound of a range for randomized sleep before each download (minimum possible number of seconds to sleep) when used along with --max-sleep-interval. --max-sleep-interval SECONDS Upper bound of a range for randomized sleep before each download (maximum possible number of seconds to sleep). Must only be used along with --min-sleep-interval. Video Format Options -f, --format FORMAT Video format code, see the FORMAT SELECTION for all the info --all-formats Download all available video formats --prefer-free-formats Prefer free video formats unless a specific one is requested -F, --list-formats List all available formats of requested videos --youtube-skip-dash-manifest Do not download the DASH manifests and related data on YouTube videos --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required Subtitle Options --write-sub Write subtitle file --write-auto-sub Write automatically generated subtitle file (YouTube only) --all-subs Download all the available subtitles of the video --list-subs List all available subtitles for the video --sub-format FORMAT Subtitle format, accepts formats preference, for example srt or ass/srt/best --sub-lang LANGS Languages of the subtitles to download (optional) separated by commas, use --list- subs for available language tags Authentication Options -u, --username USERNAME Login with this account ID -p, --password PASSWORD Account password. If this option is left out, youtube-dl will ask interactively. -2, --twofactor TWOFACTOR Two-factor authentication code -n, --netrc Use .netrc authentication data --video-password PASSWORD Video password (vimeo, smotri, youku) Adobe Pass Options --ap-mso MSO Adobe Pass multiple-system operator (TV provider) identifier, use --ap-list-mso for a list of available MSOs --ap-username USERNAME Multiple-system operator account login --ap-password PASSWORD Multiple-system operator account password. If this option is left out, youtube-dl will ask interactively. --ap-list-mso List all supported multiple-system operators Post-processing Options -x, --extract-audio Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe) --audio-format FORMAT Specify audio format best , aac , flac , mp3 , m4a , opus , vorbis , or wav ; best by default; No effect without -x --audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5) --recode-video FORMAT Encode the video to another format if necessary (currently supported mp4|flv|ogg|webm|mkv|avi) --postprocessor-args ARGS Give these arguments to the postprocessor -k, --keep-video Keep the video file on disk after the post- processing; the video is erased by default --no-post-overwrites Do not overwrite post-processed files; the post-processed files are overwritten by default --embed-subs Embed subtitles in the video (only for mp4, webm and mkv videos) --embed-thumbnail Embed thumbnail in the audio as cover art --add-metadata Write metadata to the video file --metadata-from-title FORMAT Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output. Regular expression with named capture groups may also be used. The parsed parameters replace existing values. Example --metadata-from- title %(artist)s - %(title)s matches a title like Coldplay - Paradise . Example (regex) --metadata-from-title (?P artist .+?) - (?P title .+) --xattrs Write metadata to the video file s xattrs (using dublin core and xdg standards) --fixup POLICY Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn (the default; fix file if we can, warn otherwise) --prefer-avconv Prefer avconv over ffmpeg for running the postprocessors --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors (default) --ffmpeg-location PATH Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory. --exec CMD Execute a command on the file after downloading and post-processing, similar to find s -exec syntax. Example --exec adb push {} /sdcard/Music/ rm {} --convert-subs FORMAT Convert the subtitles to other format (currently supported srt|ass|vtt|lrc) CONFIGURATION You can configure youtube-dl by placing any supported command line option to a configuration file. On Linux and macOS, the system wide configuration file is located at /etc/youtube-dl.conf and the user wide configuration file at ~/.config/youtube-dl/config. On Windows, the user wide configuration file locations are %APPDATA%\youtube-dl\config.txt or C \Users\ user name \youtube-dl.conf. Note that by default configuration file may not exist so you may need to create it yourself. For example, with the following configuration file youtube-dl will always extract the audio, not copy the mtime, use a proxy and save all videos under Movies directory in your home directory # Lines starting with # are comments # Always extract audio -x # Do not copy the mtime --no-mtime # Use this proxy --proxy 127.0.0.1 3128 # Save all videos under Movies directory in your home directory -o ~/Movies/%(title)s.%(ext)s Note that options in configuration file are just the same options aka switches used in regular command line calls thus there must be no whitespace after - or --, e.g. -o or --proxy but not - o or -- proxy. You can use --ignore-config if you want to disable the configuration file for a particular youtube-dl run. You can also use --config-location if you want to use custom configuration file for a particular youtube-dl run. Authentication with .netrc file You may also want to configure automatic credentials storage for extractors that support authentication (by providing login and password with --username and --password) in order not to pass credentials as command line arguments on every youtube-dl execution and prevent tracking plain text passwords in the shell command history. You can achieve this using a .netrc file on a per extractor basis. For that you will need to create a .netrc file in your $HOME and restrict permissions to read/write by only you touch $HOME/.netrc chmod a-rwx,u+rw $HOME/.netrc After that you can add credentials for an extractor in the following format, where extractor is the name of the extractor in lowercase machine extractor login login password password For example machine youtube login myaccount@gmail.com password my_youtube_password machine twitch login my_twitch_account_name password my_twitch_password To activate authentication with the .netrc file you should pass --netrc to youtube-dl or place it in the configuration file. On Windows you may also need to setup the %HOME% environment variable manually. For example set HOME=%USERPROFILE% OUTPUT TEMPLATE The -o option allows users to indicate a template for the output file names. tl;dr navigate me to examples. The basic usage is not to set any template arguments when downloading a single file, like in youtube-dl -o funny_video.flv https //some/video . However, it may contain special sequences that will be replaced when downloading each video. The special sequences may be formatted according to python string formatting operations. For example, %(NAME)s or %(NAME)05d. To clarify, that is a percent symbol followed by a name in parentheses, followed by formatting operations. Allowed names along with sequence type are id (string) Video identifier title (string) Video title url (string) Video URL ext (string) Video filename extension alt_title (string) A secondary title of the video display_id (string) An alternative identifier for the video uploader (string) Full name of the video uploader license (string) License name the video is licensed under creator (string) The creator of the video release_date (string) The date (YYYYMMDD) when the video was released timestamp (numeric) UNIX timestamp of the moment the video became available upload_date (string) Video upload date (YYYYMMDD) uploader_id (string) Nickname or id of the video uploader channel (string) Full name of the channel the video is uploaded on channel_id (string) Id of the channel location (string) Physical location where the video was filmed duration (numeric) Length of the video in seconds view_count (numeric) How many users have watched the video on the platform like_count (numeric) Number of positive ratings of the video dislike_count (numeric) Number of negative ratings of the video repost_count (numeric) Number of reposts of the video average_rating (numeric) Average rating give by users, the scale used depends on the webpage comment_count (numeric) Number of comments on the video age_limit (numeric) Age restriction for the video (years) is_live (boolean) Whether this video is a live stream or a fixed-length video start_time (numeric) Time in seconds where the reproduction should start, as specified in the URL end_time (numeric) Time in seconds where the reproduction should end, as specified in the URL format (string) A human-readable description of the format format_id (string) Format code specified by --format format_note (string) Additional info about the format width (numeric) Width of the video height (numeric) Height of the video resolution (string) Textual description of width and height tbr (numeric) Average bitrate of audio and video in KBit/s abr (numeric) Average audio bitrate in KBit/s acodec (string) Name of the audio codec in use asr (numeric) Audio sampling rate in Hertz vbr (numeric) Average video bitrate in KBit/s fps (numeric) Frame rate vcodec (string) Name of the video codec in use container (string) Name of the container format filesize (numeric) The number of bytes, if known in advance filesize_approx (numeric) An estimate for the number of bytes protocol (string) The protocol that will be used for the actual download extractor (string) Name of the extractor extractor_key (string) Key name of the extractor epoch (numeric) Unix epoch when creating the file autonumber (numeric) Five-digit number that will be increased with each download, starting at zero playlist (string) Name or id of the playlist that contains the video playlist_index (numeric) Index of the video in the playlist padded with leading zeros according to the total length of the playlist playlist_id (string) Playlist identifier playlist_title (string) Playlist title playlist_uploader (string) Full name of the playlist uploader playlist_uploader_id (string) Nickname or id of the playlist uploader Available for the video that belongs to some logical chapter or section chapter (string) Name or title of the chapter the video belongs to chapter_number (numeric) Number of the chapter the video belongs to chapter_id (string) Id of the chapter the video belongs to Available for the video that is an episode of some series or programme series (string) Title of the series or programme the video episode belongs to season (string) Title of the season the video episode belongs to season_number (numeric) Number of the season the video episode belongs to season_id (string) Id of the season the video episode belongs to episode (string) Title of the video episode episode_number (numeric) Number of the video episode within a season episode_id (string) Id of the video episode Available for the media that is a track or a part of a music album track (string) Title of the track track_number (numeric) Number of the track within an album or a disc track_id (string) Id of the track artist (string) Artist(s) of the track genre (string) Genre(s) of the track album (string) Title of the album the track belongs to album_type (string) Type of the album album_artist (string) List of all artists appeared on the album disc_number (numeric) Number of the disc or other physical medium the track belongs to release_year (numeric) Year (YYYY) when the album was released Each aforementioned sequence when referenced in an output template will be replaced by the actual value corresponding to the sequence name. Note that some of the sequences are not guaranteed to be present since they depend on the metadata obtained by a particular extractor. Such sequences will be replaced with NA. For example for -o %(title)s-%(id)s.%(ext)s and an mp4 video with title youtube-dl test video and id BaW_jenozKcj, this will result in a youtube-dl test video-BaW_jenozKcj.mp4 file created in the current directory. For numeric sequences you can use numeric related formatting, for example, %(view_count)05d will result in a string with view count padded with zeros up to 5 characters, like in 00042. Output templates can also contain arbitrary hierarchical path, e.g. -o %(playlist)s/%(playlist_index)s - %(title)s.%(ext)s which will result in downloading each video in a directory corresponding to this path template. Any missing directory will be automatically created for you. To use percent literals in an output template use %%. To output to stdout use -o -. The current default template is %(title)s-%(id)s.%(ext)s. In some cases, you don t want special characters such as 中, spaces, or , such as when transferring the downloaded filename to a Windows system or the filename through an 8bit-unsafe channel. In these cases, add the --restrict-filenames flag to get a shorter title Output template and Windows batch files If you are using an output template inside a Windows batch file then you must escape plain percent characters (%) by doubling, so that -o %(title)s-%(id)s.%(ext)s should become -o %%(title)s-%%(id)s.%%(ext)s . However you should not touch % s that are not plain characters, e.g. environment variables for expansion should stay intact -o C \%HOMEPATH%\Desktop\%%(title)s.%%(ext)s . Output template examples Note that on Windows you may need to use double quotes instead of single. $ youtube-dl --get-filename -o %(title)s.%(ext)s BaW_jenozKc youtube-dl test video _ä↭𝕐.mp4 # All kinds of weird characters $ youtube-dl --get-filename -o %(title)s.%(ext)s BaW_jenozKc --restrict-filenames youtube-dl_test_video_.mp4 # A simple file name # Download YouTube playlist videos in separate directory indexed by video order in a playlist $ youtube-dl -o %(playlist)s/%(playlist_index)s - %(title)s.%(ext)s https //www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re # Download all playlists of YouTube channel/user keeping each playlist in separate directory $ youtube-dl -o %(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s https //www.youtube.com/user/TheLinuxFoundation/playlists # Download Udemy course keeping each chapter in separate directory under MyVideos directory in your home $ youtube-dl -u user -p password -o ~/MyVideos/%(playlist)s/%(chapter_number)s - %(chapter)s/%(title)s.%(ext)s https //www.udemy.com/java-tutorial/ # Download entire series season keeping each series and each season in separate directory under C /MyVideos $ youtube-dl -o C /MyVideos/%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s https //videomore.ru/kino_v_detalayah/5_sezon/367617 # Stream the video being downloaded to stdout $ youtube-dl -o - BaW_jenozKc FORMAT SELECTION By default youtube-dl tries to download the best available quality, i.e. if you want the best quality you don t need to pass any special options, youtube-dl will guess it for you by default. But sometimes you may want to download in a different format, for example when you are on a slow or intermittent connection. The key mechanism for achieving this is so-called format selection based on which you can explicitly specify desired format, select formats based on some criterion or criteria, setup precedence and much more. The general syntax for format selection is --format FORMAT or shorter -f FORMAT where FORMAT is a selector expression, i.e. an expression that describes format or formats you would like to download. tl;dr navigate me to examples. The simplest case is requesting a specific format, for example with -f 22 you can download the format with format code equal to 22. You can get the list of available format codes for particular video using --list-formats or -F. Note that these format codes are extractor specific. You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file, e.g. -f webm will download the best quality format with the webm extension served as a single file. You can also use special names to select particular edge case formats best Select the best quality format represented by a single file with video and audio. worst Select the worst quality format represented by a single file with video and audio. bestvideo Select the best quality video-only format (e.g. DASH video). May not be available. worstvideo Select the worst quality video-only format. May not be available. bestaudio Select the best quality audio only-format. May not be available. worstaudio Select the worst quality audio only-format. May not be available. For example, to download the worst quality video-only format you can use -f worstvideo. If you want to download multiple videos and they don t have the same formats available, you can specify the order of preference using slashes. Note that slash is left-associative, i.e. formats on the left hand side are preferred, for example -f 22/17/18 will download format 22 if it s available, otherwise it will download format 17 if it s available, otherwise it will download format 18 if it s available, otherwise it will complain that no suitable formats are available for download. If you want to download several formats of the same video use a comma as a separator, e.g. -f 22,17,18 will download all these three formats, of course if they are available. Or a more sophisticated example combined with the precedence feature -f 136/137/mp4/bestvideo,140/m4a/bestaudio. You can also filter the video formats by putting a condition in brackets, as in -f best[height=720] (or -f [filesize 10M] ). The following numeric meta fields can be used with comparisons , =, , =, = (equals), != (not equals) filesize The number of bytes, if known in advance width Width of the video, if known height Height of the video, if known tbr Average bitrate of audio and video in KBit/s abr Average audio bitrate in KBit/s vbr Average video bitrate in KBit/s asr Audio sampling rate in Hertz fps Frame rate Also filtering work for comparisons = (equals), ^= (starts with), $= (ends with), *= (contains) and following string meta fields ext File extension acodec Name of the audio codec in use vcodec Name of the video codec in use container Name of the container format protocol The protocol that will be used for the actual download, lower-case (http, https, rtsp, rtmp, rtmpe, mms, f4m, ism, http_dash_segments, m3u8, or m3u8_native) format_id A short description of the format Any string comparison may be prefixed with negation ! in order to produce an opposite comparison, e.g. !*= (does not contain). Note that none of the aforementioned meta fields are guaranteed to be present since this solely depends on the metadata obtained by particular extractor, i.e. the metadata offered by the video hoster. Formats for which the value is not known are excluded unless you put a question mark (?) after the operator. You can combine format filters, so -f [height =? 720][tbr 500] selects up to 720p videos (or videos where the height is not known) with a bitrate of at least 500 KBit/s. You can merge the video and audio of two formats into a single file using -f video-format + audio-format (requires ffmpeg or avconv installed), for example -f bestvideo+bestaudio will download the best video-only format, the best audio-only format and mux them together with ffmpeg/avconv. Format selectors can also be grouped using parentheses, for example if you want to download the best mp4 and webm formats with a height lower than 480 you can use -f (mp4,webm)[height 480] . Since the end of April 2015 and version 2015.04.26, youtube-dl uses -f bestvideo+bestaudio/best as the default format selection (see #5447, #5456). If ffmpeg or avconv are installed this results in downloading bestvideo and bestaudio separately and muxing them together into a single file giving the best overall quality available. Otherwise it falls back to best and results in downloading the best available quality served as a single file. best is also needed for videos that don t come from YouTube because they don t provide the audio and video in two different files. If you want to only download some DASH formats (for example if you are not interested in getting videos with a resolution higher than 1080p), you can add -f bestvideo[height =?1080]+bestaudio/best to your configuration file. Note that if you use youtube-dl to stream to stdout (and most likely to pipe it to your media player then), i.e. you explicitly specify output template as -o -, youtube-dl still uses -f best format selection in order to start content delivery immediately to your player and not to wait until bestvideo and bestaudio are downloaded and muxed. If you want to preserve the old format selection behavior (prior to youtube-dl 2015.04.26), i.e. you want to download the best available quality media served as a single file, you should explicitly specify your choice with -f best. You may want to add it to the configuration file in order not to type it every time you run youtube-dl. Format selection examples Note that on Windows you may need to use double quotes instead of single. # Download best mp4 format available or any other best if no mp4 available $ youtube-dl -f bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best # Download best format available but no better than 480p $ youtube-dl -f bestvideo[height =480]+bestaudio/best[height =480] # Download best video only format but no bigger than 50 MB $ youtube-dl -f best[filesize 50M] # Download best format available via direct link over HTTP/HTTPS protocol $ youtube-dl -f (bestvideo+bestaudio/best)[protocol^=http] # Download the best video format and the best audio format without merging them $ youtube-dl -f bestvideo,bestaudio -o %(title)s.f%(format_id)s.%(ext)s Note that in the last example, an output template is recommended as bestvideo and bestaudio may have the same file name. VIDEO SELECTION Videos can be filtered by their upload date using the options --date, --datebefore or --dateafter. They accept dates in two formats Absolute dates Dates in the format YYYYMMDD. Relative dates Dates in the format (now|today)[+-][0-9](day|week|month|year)(s)? Examples # Download only the videos uploaded in the last 6 months $ youtube-dl --dateafter now-6months # Download only the videos uploaded on January 1, 1970 $ youtube-dl --date 19700101 $ # Download only the videos uploaded in the 200x decade $ youtube-dl --dateafter 20000101 --datebefore 20091231 FAQ How do I update youtube-dl? If you ve followed our manual installation instructions, you can simply run youtube-dl -U (or, on Linux, sudo youtube-dl -U). If you have used pip, a simple sudo pip install -U youtube-dl is sufficient to update. If you have installed youtube-dl using a package manager like apt-get or yum, use the standard system update mechanism to update. Note that distribution packages are often outdated. As a rule of thumb, youtube-dl releases at least once a month, and often weekly or even daily. Simply go to https //yt-dl.org to find out the current version. Unfortunately, there is nothing we youtube-dl developers can do if your distribution serves a really outdated version. You can (and should) complain to your distribution in their bugtracker or support forum. As a last resort, you can also uninstall the version installed by your package manager and follow our manual installation instructions. For that, remove the distribution s package, with a line like sudo apt-get remove -y youtube-dl Afterwards, simply follow our manual installation instructions sudo wget https //yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl hash -r Again, from then on you ll be able to update with sudo youtube-dl -U. youtube-dl is extremely slow to start on Windows Add a file exclusion for youtube-dl.exe in Windows Defender settings. I m getting an error Unable to extract OpenGraph title on YouTube playlists YouTube changed their playlist format in March 2014 and later on, so you ll need at least youtube-dl 2014.07.25 to download all YouTube videos. If you have installed youtube-dl with a package manager, pip, setup.py or a tarball, please use that to update. Note that Ubuntu packages do not seem to get updated anymore. Since we are not affiliated with Ubuntu, there is little we can do. Feel free to report bugs to the Ubuntu packaging people - all they have to do is update the package to a somewhat recent version. See above for a way to update. I m getting an error when trying to use output template error using output template conflicts with using title, video ID or auto number Make sure you are not using -o with any of these options -t, --title, --id, -A or --auto-number set in command line or in a configuration file. Remove the latter if any. Do I always have to pass -citw? By default, youtube-dl intends to have the best options (incidentally, if you have a convincing case that these should be different, please file an issue where you explain that). Therefore, it is unnecessary and sometimes harmful to copy long option strings from webpages. In particular, the only option out of -citw that is regularly useful is -i. Can you please put the -b option back? Most people asking this question are not aware that youtube-dl now defaults to downloading the highest available quality as reported by YouTube, which will be 1080p or 720p in some cases, so you no longer need the -b option. For some specific videos, maybe YouTube does not report them to be available in a specific high quality format you re interested in. In that case, simply request it with the -f option and youtube-dl will try to download it. I get HTTP error 402 when trying to download a video. What s this? Apparently YouTube requires you to pass a CAPTCHA test if you download too much. We re considering to provide a way to let you solve the CAPTCHA, but at the moment, your best course of action is pointing a web browser to the youtube URL, solving the CAPTCHA, and restart youtube-dl. Do I need any other programs? youtube-dl works fine on its own on most sites. However, if you want to convert video/audio, you ll need avconv or ffmpeg. On some sites - most notably YouTube - videos can be retrieved in a higher quality format without sound. youtube-dl will detect whether avconv/ffmpeg is present and automatically pick the best option. Videos or video formats streamed via RTMP protocol can only be downloaded when rtmpdump is installed. Downloading MMS and RTSP videos requires either mplayer or mpv to be installed. I have downloaded a video but how can I play it? Once the video is fully downloaded, use any video player, such as mpv, vlc or mplayer. I extracted a video URL with -g, but it does not play on another machine / in my web browser. It depends a lot on the service. In many cases, requests for the video (to download/play it) must come from the same IP address and with the same cookies and/or HTTP headers. Use the --cookies option to write the required cookies into a file, and advise your downloader to read cookies from that file. Some sites also require a common user agent to be used, use --dump-user-agent to see the one in use by youtube-dl. You can also get necessary cookies and HTTP headers from JSON output obtained with --dump-json. It may be beneficial to use IPv6; in some cases, the restrictions are only applied to IPv4. Some services (sometimes only for a subset of videos) do not restrict the video URL by IP address, cookie, or user-agent, but these are the exception rather than the rule. Please bear in mind that some URL protocols are not supported by browsers out of the box, including RTMP. If you are using -g, your own downloader must support these as well. If you want to play the video on a machine that is not running youtube-dl, you can relay the video content from the machine that runs youtube-dl. You can use -o - to let youtube-dl stream a video to stdout, or simply allow the player to download the files written by youtube-dl in turn. ERROR no fmt_url_map or conn information found in video info YouTube has switched to a new video info format in July 2011 which is not supported by old versions of youtube-dl. See above for how to update youtube-dl. ERROR unable to download video YouTube requires an additional signature since September 2012 which is not supported by old versions of youtube-dl. See above for how to update youtube-dl. Video URL contains an ampersand and I m getting some strange output [1] 2839 or v is not recognized as an internal or external command That s actually the output from your shell. Since ampersand is one of the special shell characters it s interpreted by the shell preventing you from passing the whole URL to youtube-dl. To disable your shell from interpreting the ampersands (or any other special characters) you have to either put the whole URL in quotes or escape them with a backslash (which approach will work depends on your shell). For example if your URL is https //www.youtube.com/watch?t=4 v=BaW_jenozKc you should end up with following command youtube-dl https //www.youtube.com/watch?t=4 v=BaW_jenozKc or youtube-dl https //www.youtube.com/watch?t=4\ v=BaW_jenozKc For Windows you have to use the double quotes youtube-dl https //www.youtube.com/watch?t=4 v=BaW_jenozKc ExtractorError Could not find JS function u OF In February 2015, the new YouTube player contained a character sequence in a string that was misinterpreted by old versions of youtube-dl. See above for how to update youtube-dl. HTTP Error 429 Too Many Requests or 402 Payment Required These two error codes indicate that the service is blocking your IP address because of overuse. Usually this is a soft block meaning that you can gain access again after solving CAPTCHA. Just open a browser and solve a CAPTCHA the service suggests you and after that pass cookies to youtube-dl. Note that if your machine has multiple external IPs then you should also pass exactly the same IP you ve used for solving CAPTCHA with --source-address. Also you may need to pass a User-Agent HTTP header of your browser with --user-agent. If this is not the case (no CAPTCHA suggested to solve by the service) then you can contact the service and ask them to unblock your IP address, or - if you have acquired a whitelisted IP address already - use the --proxy or --source-address options to select another IP address. SyntaxError Non-ASCII character The error File youtube-dl , line 2 SyntaxError Non-ASCII character \x93 ... means you re using an outdated version of Python. Please update to Python 2.6 or 2.7. What is this binary file? Where has the code gone? Since June 2012 (#342) youtube-dl is packed as an executable zipfile, simply unzip it (might need renaming to youtube-dl.zip first on some systems) or clone the git repository, as laid out above. If you modify the code, you can run it by executing the __main__.py file. To recompile the executable, run make youtube-dl. The exe throws an error due to missing MSVCR100.dll To run the exe you need to install first the Microsoft Visual C++ 2010 Redistributable Package (x86). On Windows, how should I set up ffmpeg and youtube-dl? Where should I put the exe files? If you put youtube-dl and ffmpeg in the same directory that you re running the command from, it will work, but that s rather cumbersome. To make a different directory work - either for ffmpeg, or for youtube-dl, or for both - simply create the directory (say, C \bin, or C \Users\ User name \bin), put all the executables directly in there, and then set your PATH environment variable to include that directory. From then on, after restarting your shell, you will be able to access both youtube-dl and ffmpeg (and youtube-dl will be able to find ffmpeg) by simply typing youtube-dl or ffmpeg, no matter what directory you re in. How do I put downloads into a specific folder? Use the -o to specify an output template, for example -o /home/user/videos/%(title)s-%(id)s.%(ext)s . If you want this for all of your downloads, put the option into your configuration file. How do I download a video starting with a -? Either prepend https //www.youtube.com/watch?v= or separate the ID from the options with -- youtube-dl -- -wNyEUrxzFU youtube-dl https //www.youtube.com/watch?v=-wNyEUrxzFU How do I pass cookies to youtube-dl? Use the --cookies option, for example --cookies /path/to/cookies/file.txt. In order to extract cookies from browser use any conforming browser extension for exporting cookies. For example, cookies.txt (for Chrome) or cookies.txt (for Firefox). Note that the cookies file must be in Mozilla/Netscape format and the first line of the cookies file must be either # HTTP Cookie File or # Netscape HTTP Cookie File. Make sure you have correct newline format in the cookies file and convert newlines if necessary to correspond with your OS, namely CRLF (\r\n) for Windows and LF (\n) for Unix and Unix-like systems (Linux, macOS, etc.). HTTP Error 400 Bad Request when using --cookies is a good sign of invalid newline format. Passing cookies to youtube-dl is a good way to workaround login when a particular extractor does not implement it explicitly. Another use case is working around CAPTCHA some websites require you to solve in particular cases in order to get access (e.g. YouTube, CloudFlare). How do I stream directly to media player? You will first need to tell youtube-dl to stream media to stdout with -o -, and also tell your media player to read from stdin (it must be capable of this for streaming) and then pipe former to latter. For example, streaming to vlc can be achieved with youtube-dl -o - https //www.youtube.com/watch?v=BaW_jenozKcj | vlc - How do I download only new videos from a playlist? Use download-archive feature. With this feature you should initially download the complete playlist with --download-archive /path/to/download/archive/file.txt that will record identifiers of all the videos in a special file. Each subsequent run with the same --download-archive will download only new videos and skip all videos that have been downloaded before. Note that only successful downloads are recorded in the file. For example, at first, youtube-dl --download-archive archive.txt https //www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re will download the complete PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re playlist and create a file archive.txt. Each subsequent run will only download new videos if any youtube-dl --download-archive archive.txt https //www.youtube.com/playlist?list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re Should I add --hls-prefer-native into my config? When youtube-dl detects an HLS video, it can download it either with the built-in downloader or ffmpeg. Since many HLS streams are slightly invalid and ffmpeg/youtube-dl each handle some invalid cases better than the other, there is an option to switch the downloader if needed. When youtube-dl knows that one particular downloader works better for a given website, that downloader will be picked. Otherwise, youtube-dl will pick the best downloader for general compatibility, which at the moment happens to be ffmpeg. This choice may change in future versions of youtube-dl, with improvements of the built-in downloader and/or ffmpeg. In particular, the generic extractor (used when your website is not in the list of supported sites by youtube-dl cannot mandate one specific downloader. If you put either --hls-prefer-native or --hls-prefer-ffmpeg into your configuration, a different subset of videos will fail to download correctly. Instead, it is much better to file an issue or a pull request which details why the native or the ffmpeg HLS downloader is a better choice for your use case. Can you add support for this anime video site, or site which shows current movies for free? As a matter of policy (as well as legality), youtube-dl does not include support for services that specialize in infringing copyright. As a rule of thumb, if you cannot easily find a video that the service is quite obviously allowed to distribute (i.e. that has been uploaded by the creator, the creator s distributor, or is published under a free license), the service is probably unfit for inclusion to youtube-dl. A note on the service that they don t host the infringing content, but just link to those who do, is evidence that the service should not be included into youtube-dl. The same goes for any DMCA note when the whole front page of the service is filled with videos they are not allowed to distribute. A "fair use" note is equally unconvincing if the service shows copyright-protected videos in full without authorization. Support requests for services that do purchase the rights to distribute their content are perfectly fine though. If in doubt, you can simply include a source that mentions the legitimate purchase of content. How can I speed up work on my issue? (Also known as Help, my important issue not being solved!) The youtube-dl core developer team is quite small. While we do our best to solve as many issues as possible, sometimes that can take quite a while. To speed up your issue, here s what you can do First of all, please do report the issue at our issue tracker. That allows us to coordinate all efforts by users and developers, and serves as a unified point. Unfortunately, the youtube-dl project has grown too large to use personal email as an effective communication channel. Please read the bug reporting instructions below. A lot of bugs lack all the necessary information. If you can, offer proxy, VPN, or shell access to the youtube-dl developers. If you are able to, test the issue from multiple computers in multiple countries to exclude local censorship or misconfiguration issues. If nobody is interested in solving your issue, you are welcome to take matters into your own hands and submit a pull request (or coerce/pay somebody else to do so). Feel free to bump the issue from time to time by writing a small comment ("Issue is still present in youtube-dl version ...from France, but fixed from Belgium"), but please not more than once a month. Please do not declare your issue as important or urgent. How can I detect whether a given URL is supported by youtube-dl? For one, have a look at the list of supported sites. Note that it can sometimes happen that the site changes its URL scheme (say, from https //example.com/video/1234567 to https //example.com/v/1234567 ) and youtube-dl reports an URL of a service in that list as unsupported. In that case, simply report a bug. It is not possible to detect whether a URL is supported or not. That s because youtube-dl contains a generic extractor which matches all URLs. You may be tempted to disable, exclude, or remove the generic extractor, but the generic extractor not only allows users to extract videos from lots of websites that embed a video from another service, but may also be used to extract video from a service that it s hosting itself. Therefore, we neither recommend nor support disabling, excluding, or removing the generic extractor. If you want to find out whether a given URL is supported, simply call youtube-dl with it. If you get no videos back, chances are the URL is either not referring to a video or unsupported. You can find out which by examining the output (if you run youtube-dl on the console) or catching an UnsupportedError exception if you run it from a Python program. Why do I need to go through that much red tape when filing bugs? Before we had the issue template, despite our extensive bug reporting instructions, about 80% of the issue reports we got were useless, for instance because people used ancient versions hundreds of releases old, because of simple syntactic errors (not in youtube-dl but in general shell usage), because the problem was already reported multiple times before, because people did not actually read an error message, even if it said "please install ffmpeg", because people did not mention the URL they were trying to download and many more simple, easy-to-avoid problems, many of whom were totally unrelated to youtube-dl. youtube-dl is an open-source project manned by too few volunteers, so we d rather spend time fixing bugs where we are certain none of those simple problems apply, and where we can be reasonably confident to be able to reproduce the issue without asking the reporter repeatedly. As such, the output of youtube-dl -v YOUR_URL_HERE is really all that s required to file an issue. The issue template also guides you through some basic steps you can do, such as checking that your version of youtube-dl is current. DEVELOPER INSTRUCTIONS Most users do not need to build youtube-dl and can download the builds or get them from their distribution. To run youtube-dl as a developer, you don t need to build anything either. Simply execute python -m youtube_dl To run the test, simply invoke your favorite test runner, or execute a test file directly; any of the following work python -m unittest discover python test/test_download.py nosetests See item 6 of new extractor tutorial for how to run extractor specific test cases. If you want to create a build of youtube-dl yourself, you ll need python make (only GNU make is supported) pandoc zip nosetests Adding support for a new site If you want to add support for a new site, first of all make sure this site is not dedicated to copyright infringement. youtube-dl does not support such sites thus pull requests adding support for them will be rejected. After you have ensured this site is distributing its content legally, you can follow this quick list (assuming your service is called yourextractor) Fork this repository Check out the source code with git clone git@github.com YOUR_GITHUB_USERNAME/youtube-dl.git Start a new git branch with cd youtube-dl git checkout -b yourextractor Start with this simple template and save it to youtube_dl/extractor/yourextractor.py # coding utf-8 from __future__ import unicode_literals from .common import InfoExtractor class YourExtractorIE(InfoExtractor) _VALID_URL = r https? //(? www\.)?yourextractor\.com/watch/(?P id [0-9]+) _TEST = { url https //yourextractor.com/watch/42 , md5 TODO md5 sum of the first 10241 bytes of the video file (use --test) , info_dict { id 42 , ext mp4 , title Video title goes here , thumbnail r re ^https? //.*\.jpg$ , # TODO more properties, either as # * A value # * MD5 checksum; start the string with md5 # * A regular expression; start the string with re # * Any Python type (for example int or float) } } def _real_extract(self, url) video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) # TODO more code goes here, for example ... title = self._html_search_regex(r h1 (.+?) /h1 , webpage, title ) return { id video_id, title title, description self._og_search_description(webpage), uploader self._search_regex(r div[^ ]+id= uploader [^ ]* ([^ ]+) , webpage, uploader , fatal=False), # TODO more properties (see youtube_dl/extractor/common.py) } Add an import in youtube_dl/extractor/extractors.py. Run python test/test_download.py TestDownload.test_YourExtractor. This should fail at first, but you can continually re-run it until you re done. If you decide to add more than one test, then rename _TEST to _TESTS and make it into a list of dictionaries. The tests will then be named TestDownload.test_YourExtractor, TestDownload.test_YourExtractor_1, TestDownload.test_YourExtractor_2, etc. Note that tests with only_matching key in test s dict are not counted in. Have a look at youtube_dl/extractor/common.py for possible helper methods and a detailed description of what your extractor should and may return. Add tests and code for as many as you want. Make sure your code follows youtube-dl coding conventions and check the code with flake8 $ flake8 youtube_dl/extractor/yourextractor.py Make sure your code works under all Python versions claimed supported by youtube-dl, namely 2.6, 2.7, and 3.2+. When the tests pass, add the new files and commit them and push the result, like this $ git add youtube_dl/extractor/extractors.py $ git add youtube_dl/extractor/yourextractor.py $ git commit -m [yourextractor] Add new extractor $ git push origin yourextractor Finally, create a pull request. We ll then review and merge it. In any case, thank you very much for your contributions! youtube-dl coding conventions This section introduces a guide lines for writing idiomatic, robust and future-proof extractor code. Extractors are very fragile by nature since they depend on the layout of the source data provided by 3rd party media hosters out of your control and this layout tends to change. As an extractor implementer your task is not only to write code that will extract media links and metadata correctly but also to minimize dependency on the source s layout and even to make the code foresee potential future changes and be ready for that. This is important because it will allow the extractor not to break on minor layout changes thus keeping old youtube-dl versions working. Even though this breakage issue is easily fixed by emitting a new version of youtube-dl with a fix incorporated, all the previous versions become broken in all repositories and distros packages that may not be so prompt in fetching the update from us. Needless to say, some non rolling release distros may never receive an update at all. Mandatory and optional metafields For extraction to work youtube-dl relies on metadata your extractor extracts and provides to youtube-dl expressed by an information dictionary or simply info dict. Only the following meta fields in the info dict are considered mandatory for a successful extraction process by youtube-dl id (media identifier) title (media title) url (media download URL) or formats In fact only the last option is technically mandatory (i.e. if you can t figure out the download location of the media the extraction does not make any sense). But by convention youtube-dl also treats id and title as mandatory. Thus the aforementioned metafields are the critical data that the extraction does not make any sense without and if any of them fail to be extracted then the extractor is considered completely broken. Any field apart from the aforementioned ones are considered optional. That means that extraction should be tolerant to situations when sources for these fields can potentially be unavailable (even if they are always available at the moment) and future-proof in order not to break the extraction of general purpose mandatory fields. Example Say you have some source dictionary meta that you ve fetched as JSON with HTTP request and it has a key summary meta = self._download_json(url, video_id) Assume at this point meta s layout is { ... summary some fancy summary text , ... } Assume you want to extract summary and put it into the resulting info dict as description. Since description is an optional meta field you should be ready that this key may be missing from the meta dict, so that you should extract it like description = meta.get( summary ) # correct and not like description = meta[ summary ] # incorrect The latter will break extraction process with KeyError if summary disappears from meta at some later time but with the former approach extraction will just go ahead with description set to None which is perfectly fine (remember None is equivalent to the absence of data). Similarly, you should pass fatal=False when extracting optional data from a webpage with _search_regex, _html_search_regex or similar methods, for instance description = self._search_regex( r span[^ ]+id= title [^ ]* ([^ ]+) , webpage, description , fatal=False) With fatal set to False if _search_regex fails to extract description it will emit a warning and continue extraction. You can also pass default= some fallback value , for example description = self._search_regex( r span[^ ]+id= title [^ ]* ([^ ]+) , webpage, description , default=None) On failure this code will silently continue the extraction with description set to None. That is useful for metafields that may or may not be present. Provide fallbacks When extracting metadata try to do so from multiple sources. For example if title is present in several places, try extracting from at least some of them. This makes it more future-proof in case some of the sources become unavailable. Example Say meta from the previous example has a title and you are about to extract it. Since title is a mandatory meta field you should end up with something like title = meta[ title ] If title disappears from meta in future due to some changes on the hoster s side the extraction would fail since title is mandatory. That s expected. Assume that you have some another source you can extract title from, for example og title HTML meta of a webpage. In this case you can provide a fallback scenario title = meta.get( title ) or self._og_search_title(webpage) This code will try to extract from meta first and if it fails it will try extracting og title from a webpage. Regular expressions Don t capture groups you don t use Capturing group must be an indication that it s used somewhere in the code. Any group that is not used must be non capturing. Example Don t capture id attribute name here since you can t use it for anything anyway. Correct r (? id|ID)=(?P id \d+) Incorrect r (id|ID)=(?P id \d+) Make regular expressions relaxed and flexible When using regular expressions try to write them fuzzy, relaxed and flexible, skipping insignificant parts that are more likely to change, allowing both single and double quotes for quoted values and so on. Example Say you need to extract title from the following HTML code span style= position absolute; left 910px; width 90px; float right; z-index 9999; class= title some fancy title /span The code for that task should look similar to title = self._search_regex( r span[^ ]+class= title [^ ]* ([^ ]+) , webpage, title ) Or even better title = self._search_regex( r span[^ ]+class=([ \ ])title\1[^ ]* (?P title [^ ]+) , webpage, title , group= title ) Note how you tolerate potential changes in the style attribute s value or switch from using double quotes to single for class attribute The code definitely should not look like title = self._search_regex( r span style= position absolute; left 910px; width 90px; float right; z-index 9999; class= title (.*?) /span , webpage, title , group= title ) Long lines policy There is a soft limit to keep lines of code under 80 characters long. This means it should be respected if possible and if it does not make readability and code maintenance worse. For example, you should never split long string literals like URLs or some other often copied entities over multiple lines to fit this limit Correct https //www.youtube.com/watch?v=FqZTN594JQw list=PLMYEtVRpaqY00V9W81Cwmzp6N6vZqfUKD4 Incorrect https //www.youtube.com/watch?v=FqZTN594JQw list= PLMYEtVRpaqY00V9W81Cwmzp6N6vZqfUKD4 Inline values Extracting variables is acceptable for reducing code duplication and improving readability of complex expressions. However, you should avoid extracting variables used only once and moving them to opposite parts of the extractor file, which makes reading the linear flow difficult. Example Correct title = self._html_search_regex(r title ([^ ]+) /title , webpage, title ) Incorrect TITLE_RE = r title ([^ ]+) /title # ...some lines of code... title = self._html_search_regex(TITLE_RE, webpage, title ) Collapse fallbacks Multiple fallback values can quickly become unwieldy. Collapse multiple fallback values into a single expression via a list of patterns. Example Good description = self._html_search_meta( [ og description , description , twitter description ], webpage, description , default=None) Unwieldy description = ( self._og_search_description(webpage, default=None) or self._html_search_meta( description , webpage, default=None) or self._html_search_meta( twitter description , webpage, default=None)) Methods supporting list of patterns are _search_regex, _html_search_regex, _og_search_property, _html_search_meta. Trailing parentheses Always move trailing parentheses after the last argument. Example Correct lambda x x[ ResultSet ][ Result ][0][ VideoUrlSet ][ VideoUrl ], list) Incorrect lambda x x[ ResultSet ][ Result ][0][ VideoUrlSet ][ VideoUrl ], list, ) Use convenience conversion and parsing functions Wrap all extracted numeric data into safe functions from youtube_dl/utils.py int_or_none, float_or_none. Use them for string to number conversions as well. Use url_or_none for safe URL processing. Use try_get for safe metadata extraction from parsed JSON. Use unified_strdate for uniform upload_date or any YYYYMMDD meta field extraction, unified_timestamp for uniform timestamp extraction, parse_filesize for filesize extraction, parse_count for count meta fields extraction, parse_resolution, parse_duration for duration extraction, parse_age_limit for age_limit extraction. Explore youtube_dl/utils.py for more useful convenience functions. More examples Safely extract optional description from parsed JSON description = try_get(response, lambda x x[ result ][ video ][0][ summary ], compat_str) Safely extract more optional metadata video = try_get(response, lambda x x[ result ][ video ][0], dict) or {} description = video.get( summary ) duration = float_or_none(video.get( durationMs ), scale=1000) view_count = int_or_none(video.get( views )) EMBEDDING YOUTUBE-DL youtube-dl makes the best effort to be a good command-line program, and thus should be callable from any programming language. If you encounter any problems parsing its output, feel free to create a report. From a Python program, you can embed youtube-dl in a more powerful fashion, like this from __future__ import unicode_literals import youtube_dl ydl_opts = {} with youtube_dl.YoutubeDL(ydl_opts) as ydl ydl.download([ https //www.youtube.com/watch?v=BaW_jenozKc ]) Most likely, you ll want to use various options. For a list of options available, have a look at youtube_dl/YoutubeDL.py. For a start, if you want to intercept youtube-dl s output, set a logger object. Here s a more complete example of a program that outputs only errors (and a short message after the download is finished), and downloads/converts the video to an mp3 file from __future__ import unicode_literals import youtube_dl class MyLogger(object) def debug(self, msg) pass def warning(self, msg) pass def error(self, msg) print(msg) def my_hook(d) if d[ status ] == finished print( Done downloading, now converting ... ) ydl_opts = { format bestaudio/best , postprocessors [{ key FFmpegExtractAudio , preferredcodec mp3 , preferredquality 192 , }], logger MyLogger(), progress_hooks [my_hook], } with youtube_dl.YoutubeDL(ydl_opts) as ydl ydl.download([ https //www.youtube.com/watch?v=BaW_jenozKc ]) BUGS Bugs and suggestions should be reported at https //github.com/ytdl-org/youtube-dl/issues. Unless you were prompted to or there is another pertinent reason (e.g. GitHub fails to accept the bug report), please do not send bug reports via personal email. For discussions, join us in the IRC channel #youtube-dl on freenode (webchat). Please include the full output of youtube-dl when run with -v, i.e. add -v flag to your command line, copy the whole output and post it in the issue body wrapped in ``` for better formatting. It should look similar to this $ youtube-dl -v your command line [debug] System config [] [debug] User config [] [debug] Command-line args [u -v , u https //www.youtube.com/watch?v=BaW_jenozKcj ] [debug] Encodings locale cp1251, fs mbcs, out cp866, pref cp1251 [debug] youtube-dl version 2015.12.06 [debug] Git HEAD 135392e [debug] Python version 2.6.6 - Windows-2003Server-5.2.3790-SP2 [debug] exe versions ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4 [debug] Proxy map {} ... Do not post screenshots of verbose logs; only plain text is acceptable. The output (including the first lines) contains important debugging information. Issues without the full output are often not reproducible and therefore do not get solved in short order, if ever. Please re-read your issue once again to avoid a couple of common mistakes (you can and should use this as a checklist) Is the description of the issue itself sufficient? We often get issue reports that we cannot really decipher. While in most cases we eventually get the required information after asking back multiple times, this poses an unnecessary drain on our resources. Many contributors, including myself, are also not native speakers, so we may misread some parts. So please elaborate on what feature you are requesting, or what bug you want to be fixed. Make sure that it s obvious What the problem is How it could be fixed How your proposed solution would look like If your report is shorter than two lines, it is almost certainly missing some of these, which makes it hard for us to respond to it. We re often too polite to close the issue outright, but the missing info makes misinterpretation likely. As a committer myself, I often get frustrated by these issues, since the only possible way for me to move forward on them is to ask for clarification over and over. For bug reports, this means that your report should contain the complete output of youtube-dl when called with the -v flag. The error message you get for (most) bugs even says so, but you would not believe how many of our bug reports do not contain this information. If your server has multiple IPs or you suspect censorship, adding --call-home may be a good idea to get more diagnostics. If the error is ERROR Unable to extract ... and you cannot reproduce it from multiple countries, add --dump-pages (warning this will yield a rather large output, redirect it to the file log.txt by adding log.txt 2 1 to your command-line) or upload the .dump files you get when you add --write-pages somewhere. Site support requests must contain an example URL. An example URL is a URL you might want to download, like https //www.youtube.com/watch?v=BaW_jenozKc. There should be an obvious video present. Except under very special circumstances, the main page of a video service (e.g. https //www.youtube.com/) is not an example URL. Are you using the latest version? Before reporting any issue, type youtube-dl -U. This should report that you re up-to-date. About 20% of the reports we receive are already fixed, but people are using outdated versions. This goes for feature requests as well. Is the issue already documented? Make sure that someone has not already opened the issue you re trying to open. Search at the top of the window or browse the GitHub Issues of this repository. If there is an issue, feel free to write something along the lines of "This affects me as well, with version 2015.01.01. Here is some more information on the issue ...". While some issues may be old, a new post into them often spurs rapid activity. Why are existing options not enough? Before requesting a new feature, please have a quick peek at the list of supported options. Many feature requests are for features that actually exist already! Please, absolutely do show off your work in the issue report and detail how the existing similar options do not solve your problem. Is there enough context in your bug report? People want to solve problems, and often think they do us a favor by breaking down their larger problems (e.g. wanting to skip already downloaded files) to a specific request (e.g. requesting us to look whether the file exists before downloading the info page). However, what often happens is that they break down the problem into two steps One simple, and one impossible (or extremely complicated one). We are then presented with a very complicated request when the original problem could be solved far easier, e.g. by recording the downloaded video IDs in a separate file. To avoid this, you must include the greater context where it is non-obvious. In particular, every feature request that does not consist of adding support for a new site should contain a use case scenario that explains in what situation the missing feature would be useful. Does the issue involve one problem, and one problem only? Some of our users seem to think there is a limit of issues they can or should open. There is no limit of issues they can or should open. While it may seem appealing to be able to dump all your issues into one ticket, that means that someone who solves one of your issues cannot mark the issue as closed. Typically, reporting a bunch of issues leads to the ticket lingering since nobody wants to attack that behemoth, until someone mercifully splits the issue into multiple ones. In particular, every site support request issue should only pertain to services at one site (generally under a common domain, but always using the same backend technology). Do not request support for vimeo user videos, White house podcasts, and Google Plus pages in the same issue. Also, make sure that you don t post bug reports alongside feature requests. As a rule of thumb, a feature request does not include outputs of youtube-dl that are not immediately related to the feature at hand. Do not post reports of a network error alongside the request for a new video service. Is anyone going to need the feature? Only post features that you (or an incapacitated friend you can personally talk to) require. Do not post features because they seem like a good idea. If they are really useful, they will be requested by someone who requires them. Is your question about youtube-dl? It may sound strange, but some bug reports we receive are completely unrelated to youtube-dl and relate to a different, or even the reporter s own, application. Please make sure that you are actually using youtube-dl. If you are using a UI for youtube-dl, report the bug to the maintainer of the actual application providing the UI. On the other hand, if your UI for youtube-dl fails in some way you believe is related to youtube-dl, by all means, go ahead and report the bug. COPYRIGHT youtube-dl is released into the public domain by the copyright holders. This README file was originally written by Daniel Bolton and is likewise released into the public domain.
https://w.atwiki.jp/fifa-pc/pages/68.html
Sound eXchangeのヘルプです。 Sound eXchange (SX) was a tool distributed by Electronic Arts that supports conversion of audio to and from the various EA game formats. Observations SX requires an ending chunk (e.g. SCEl) to be present in the input file, when decoding EALayer3. If no ending chunk is present, SX will exit stating "Couldn t allocate memory for EALayer3 buffer." Command Line Help sx v3.01.01 (Sound eXchange) Sep 22 2004 by Dave Mercier, EAC USAGE sx format [options] sourcefiles VERSION WIN NT v3.01.01 (Sound eXchange), Spit v3.19 SUMMARY sx is a sample format converter SPIT environment variable is SX_OPTS -aiff Export Apple AIFF/AIFC (s16b_int) (s8_int) (dvi_int) (s24b_int) -wave Export Microsoft Wave (s16l_int) (u8_int) -cdxa Export CD-ROM XA (cdxa) -vag Export Sony VAG (vag_blk) -raw Export RAW (no header) (s8_int) (s8_blk) (u8_int) (s16b_int) (s16b_blk) (s16l_int) (s16l_blk) (eaxa_blk) (cdxa) (vag_blk) (dvi_int) (mt_blk) (mt5_blk) (s24l_int) (s24b_int) -pcbank Export SND PC bank (s8_blk) (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) (vag_blk) (xboxadpcm) (gcadpcm) -pcstream Export SND PC stream (s8_blk) (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) -macbank Export SND MAC bank (s8_blk) (s16b_blk) (eaxa_blk) (mt_blk) (mt5_blk) (vag_blk) (xboxadpcm) (gcadpcm) -macstream Export SND MAC stream (s8_blk) (s16b_blk) (eaxa_blk) (mt_blk) (mt5_blk) -ps2bank Export SND PS2 bank (vag_blk) (s8_blk) (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) -ps2stream Export SND PS2 stream (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) -gcbank Export SND GC bank (s16b_blk) (gcadpcm) (mt_blk) (eaxa_blk) (mt5_blk) -gcstream Export SND GC stream (s16b_blk) (mt_blk) (eaxa_blk) (mt5_blk) -xboxbank Export SND XBOX bank (s16l_blk) (xboxadpcm) (eaxa_blk) (mt_blk) (mt5_blk) -xboxstream Export SND XBOX stream (s16l_blk) (xboxadpcm) (eaxa_blk) (mt_blk) (mt5_blk) -sndstream Export SND Generic stream (eaxa_blk) (mt_blk) (mt5_blk) -xenonbank Export SND XENON bank (s16b_blk) (eaxa_blk) (mt_blk) (mt5_blk) -pspbank Export SND PSP bank (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) (vag_blk) -xenonstream Export SND XENON stream (s16b_blk) (eaxa_blk) (mt_blk) (mt5_blk) -pspstream Export SND PSP stream (s16l_blk) (eaxa_blk) (mt_blk) (mt5_blk) -raw samplerep Import RAW with given sample data representation (s8_int) (s8_blk) (u8_int) (s16b_int) (s16b_blk) (s16l_int) (s16l_blk) (s24l_int) (s24b_int) Sample data representations that may be specified -s16l_int Signed 16-Bit Little-Endian Interleaved -s16b_int Signed 16-Bit Big-Endian Interleaved -s8_int Signed 8-Bit Interleaved -mt_blk MicroTalk Block (10 1) -vag_blk Sony VAG Block (3.5 1) -s16b_blk Signed 16-Bit Big-Endian Block -s16l_blk Signed 16-Bit Little-Endian Block -s8_blk Signed 8-Bit Block -eaxa_blk EA-XA Block (3.7 1) -u8_int Unsigned 8-Bit Interleaved -cdxa CD-XA Interleaved (3.5 1) -dvi_int DVI Interleaved (4 1) -gcadpcm GameCube ADPCM (3.5 1) -s24l_int Signed 24-Bit Little-Endian Interleaved -xboxadpcm Xbox ADPCM (3.5 1) -s24b_int Signed 24-Bit Big-Endian Interleaved -mt5_blk MicroTalk Block (5 1) -noprogress Do not display progress bars -rawc channels Specify RAW input channels (default 1) -raws rate Specify RAW samplerate (default 22050 Hz.) -split Split multi-channel into multiple single-channel files -onetomany Break multi-element files into individual files -element offset Adjust destination element positions by this offset -notruncate Don t remove samples after loop (default truncates) -det cents Specify new detune in cents for playback (default is 0) -br semitones Specify bend range for playback (default is 0) -vol 0-127 Specify volume for playback (default is 127) -rd cents Specify random detune range in cents (default is 0) -mrd cents Specify master random detune range in cents (default is 0) -rv 0-127 Specify random volume range for playback (default is 0) -pan 0-127 Specify pan offset (default is 64) -rp 0-127 Specify random pan offset range (default is 0) -fps 0.1-120.0 Specify chunk rate for stream (default is 15.0) -renv -1-127 Specify release envelope (default is -1) -envi 0-127 Specify initial envelope volume (default is 127) -env dur,vol[,dur,vol,...] Specify playback envelope as a series of segments, each with a duration and volume. duration is in 1/100ths of a second and volume ranges from 0..127 -az 0..65535[,...] Specify directional azimuths for each channel. First azimuth listed corresponds to the lowest channel. An azimuth of 0 would be directly ahead, 16384 would be directly to the right. -loops sample The loop start value sets which sample the loop section begins on. "sample" - Specify the sample to begin the loop section, -1 indicates no loop start point. Allowable range is -1 .. 2147483647. -loope sample The loop end value sets which sample the loop section ends on. "sample" - Specify the sample to end the loop section, -1 indicates no loop end point. Allowable range is -1 .. 2147483647. -ifnoloops sample The loop start is set to the value given, if there isn t one currently in the file. -1 means no loop start point. "sample" - Specify the sample to begin the loop section, -1 means no loop start point Allowable range is -1 .. 2147483647. -ifnoloope sample The loop end is set to the value given, if there isn t one currently in the file. -1 means no loop end point "sample" - Specify the sample to end the loop section, -1 means no loop end point. Allowable range is -1 .. 2147483647. -markertouser Explicitly transfer all the AIFF markers to user data. This is not done by default -cbr bitrate The constant bit rate is used to set the level of compression. "bitrate" - Specify in bits per second. Allowable range is 8000 .. 960000. -vbr quality The variable bitrate quality is used to set the level of compression. "quality" - Specify compression quality, 0 = highest compression (bad sound quality), 100 = lowest compression (good sound quality) Allowable range is 0 .. 100. -playloc location The play-back location determines what system a sound will be played from. "location" - Location can be one of default , spu , maincpu , iopcpu , ds2dhw , ds3dhw , or dsp . -priority value Set priority for voice allocation. "value" - Specify priority for playback (default is 0, 100 is highest). Allowable range is 0 .. 100. -fxzero level Set level for effect bus 0. "level" - Specify effect level for bus 0 (default is 0). Allowable range is 0 .. 127. -embeduser Attach user data to a sample. "data" - Specify user data to attach to sample. Specify as a file name. -embedts window Generate and embed additional data needed to perform run-time time stretch. "window" - Window size to use to correlate sample data, specified in microseconds. 9000 is a good default. Allowable range is 1000 .. 100000. -removeuserbyid id Remove user data chunks from a sample, which ID matches the given value. "id" - Specified as the id of the chunk(s) to be removed. It must be a four-letter id. (eg. MYID) -removeuserbyvalue value Remove user data chunks from a sample, which ID matches the given value. "value" - Specified as the id of the chunk(s) to be removed. The value entered can be of any standard format, but you must specify it clearly. (eg. 0x4F64EA6C) Allowable range is -2147483648 .. 2147483647. -removeuserall Remove all user data from a sample. (No parameter is required) -rs rate Resample to a new rate. "rate" - Specified as new sample rate in Hertz. Allowable range is 400 .. 96000. -dstofit frames Ensure sample uses no more than N frames by reducing sample rate until it fits. "frames" - Specify maximum amount of frames allowable in sample. Allowable range is 1 .. 2147483647. -alignloop alignment Resample and insert silence to line loop points up to alignment restrictions. "alignment" - Specify the alignment restriction. Allowable range is 2 .. 1024. -padloop padding Extend and/or replace samples after loop end point with the samples that begin at the loop start point. "padding" - Specify the amount of samples to pad out after the loop end point. Allowable range is 0 .. 2147483647. -sa amplitude Scale amplitude of sample. "amplitude" - Specified as percentage of original volume. Allowable Range is -10000.0 .. 10000.0. -fadein Apply linear fade-in to sample. "time" - Specified as milliseconds into sample to achieve full amplitude. Allowable range is 0 .. 2147483647. -fadeout time Apply linear fade-out to sample. "time" - Specified as milliseconds to end of sample to begin fade to zero amplitude. Allowable range is 0 .. 2147483647. -crop startframe,frames Crop a section of a sample. "startframe" - Specify frame to begin crop at. Negative values insert silence at start of crop. Allowable range is -2147483647 .. 2147483647. "frames" - Specify number of frames to crop. Specifying past original sample will insert silence at end of crop. Allowable range is 1 .. 2147483647. -remix target Remix will either down-mix or up-mix or otherwise remix the source into the new target mix type. For example a 5.1 file could be mixed down to stereo, or even a stereo ProLogic II file. Note that ProLogic encoded files are not decoded when converted to quad or 5.1, they are treated as stereo. "target" - Remix target can be one of mono , stereo , quad , 5.1 , or prologic2 . -copychan source,destination Copy source channel sample data to destination channel. "source" - Source channel to copy (channels start at 0). Allowable range is 0 .. 5. "destination" - Destination channel to copy to (channels start at 0). Allowable range is 0 .. 5. -cutchan source Cut source channel sample data out of sample. "source" - Source channel to cut (channels start at 0). Allowable range is 0 .. 5. -distort amount Distorts the signal by clipping high amplitudes. "amount" - Specify amount of distortion (0 is least distortion). Allowable range is 0 .. 32767. -reverb preset,level Apply given reverb type to sample. "preset" - Specify reverb preset. Allowable range is 0 .. 0. "level" - Specify reverb level. Allowable range is 0 .. 127. -resampfilter filter Resample to a new rate using a filter profile. "filter" - Specify filter profile to use to perform resample. Specify as a file name. SX currently supports the following formats for importing - Apple AIFF/AIFC - Microsoft Wave - CD-ROM XA - Sony VAG - RAW (no header) - SND PC bank - SND PC stream - SND MAC bank - SND MAC stream - SND PS2 bank - SND PS2 stream - SND GC bank - SND GC stream - SND XBOX bank - SND XBOX stream - Quicktime Movie - MPEG - SND Generic stream - SND XENON bank - SND PSP bank - SND XENON stream - SND PSP stream @ file with file, containing a list of options and files -.ext specifies output file extension -= name specifies output file name -v0 no console output -v1 prints source file name and errors -v2 status line for each file (default) -v3 additional info Example Convert AIFF format audio.aif into pc stream format audio.asf. sx -pcstream audio.aif -=audio.asf Binary details SX.EXE size 577536 bytes md5 daffbcd5b48579801afe780140520c78 sha1 5252db36c709ad1a47fecdd4060a1fd40f83f387
https://w.atwiki.jp/lameaintmp3encoder/pages/13.html
LAME 3.0以降 赤 = 音質に関するバグ修正や機能features and bug fixes which affect quality青= エンコード速度に関するバグ修正や機能features and bug fixes which affect speed 黒 =ユーザビリティなどその他 usability, portability, other LAME 3.98 正式版 リリース未定 LAME 3.98 beta 8 2008 4 13 Robert Hegemann LAME now accepts a floating point value in the range [0,...,10[ as VBR quality setting, like-V5.678 Found and fixed some suspicious code in additive masking calculation for VBR-NEW bug-fix experimental code was defaulted by accident for VBR-NEW fix for some endianess problem on big-endian machines LAME 3.98 beta 7 2008 4 6 Robert Hegemann libmp3lame API allow frontends to separately retrieve LAME/Xing and ID3 data, because the old library automatism makes it impossible to make fully buffered encodes. libmp3lame API added some experimental unicode ID3 tagging code. frontends write itself final ID3 tags and LAME/Xing header frame lame_enc.dll writes itself final LAME/Xing header frame Latest changes to the new VBR psymodel uses a different spreading function bug-fix for out-of-bounds array access (program stack corruption possible) LAME 3.98 beta 6 2007 12 16 Robert Hegemann Feature request[ 1811483 ] WAVE_FORMAT_EXTENSIBLE support (PCM) Fix for some rare scalefactor selection issue the newer vbr code had at low compression levels Fix for Bugtracker item[ 1813496 ] AIFF parsing bug Latest changes to the new VBR code it now has its own psy model, a derivation from NSPSY. some more tuning has been done for this new psy model.Many thanks to Horst Albrecht and Myles Thaiss. the "out-of-bits" strategy is reworked It was possible, that the "interchannel masking effects feature" was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work on stereo L/R channels only. LAME 3.98 beta 5 2007 8 12 Jonathan Stott Bug tracker items [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten If the output file is opened write-only , then LAME can t update the LAME tag. In this case LAME silently overwrote the first bytes of the file and an optional ID3v2 tag disappeared. Now an error message will be printed and no data is written in this case. Robert Hegemann Fix for Bugtracker item[ 1719593 ] Track numbers 255 not allowed even with --id3v2-only Fix for Bugtracker item[ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3) The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name extension and because it found some valid looking Layer3 synchronization header. The fixed LAME version does not assume the file name extension is always correct and treats the files depending on the first found MPEG sync word. The files in question are now correctly detected as Layer2 files and transcoding does succeed. Fix for Bugtracker item[ 1445175 ] Input being stdin fails in Windows on WAV files The problem here was, seeking on pipes shows some different behaviour depending on C-Library implementations. The workaround tries to detect it s working on a pipe and doing some reading instead of seeking in that case. Fixing some memory leak in the lame_enc.dll . Fix for Bugtracker items[ 1160757, 1160741 ] --little-endian / --big-endian not working These switches where originally intended to be used together with Libsndfile only. Fix for Bugtracker item[ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4 Some earlier bug-fix had some typo. As a result, when adding a --resample 123 switch, the average bitrate rised upto maximum bitrate. LAME 3.98 beta 4 2007 6 23 Dennis Lambe Jr Added support for total track count (id3v2) in the frontend Nyaochi Ability to set user-defined ID3v2.3 frame Ability to include albumArt in ID3v2.3 tag Robert Hegemann Bugfix the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed. Some hardware and software players were confused by this garbage data. Out of bits strategy for the newer VBR code overhauled LAME API the ID3 tag functions do not store the pointers passed anymore, they do make deep copies of strings passed as parameters. Changes in LAME frontend switches regarding ID3 tags --tg "MyGenre"will route unknown ID3v1 genres to "Other" for ID3v1 tags and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.--tn "02/02"will store the track number specified as plain text as-is for ID3v2 tags. LAME 3.98 beta 3 2007 5 22 Robert Hegemann Fixes regarding max number of bits limitation LAME 3.98 beta 2 2007 5 20 Robert Hegemann Bug tracker item [ 1693461 ];Fixed memory leaks in ACM codec Fixed encoding of non-standard sampling rates in CBR Improved VBR strategy when running out of bits LAME 3.98 beta 1 2007 5 16 Alexander Leidinger Add TLEN (ID3v2) support (Submitted by Linus Walleij). Add number of total tracks per album (ID3v2) support (Submitted by Kyle VanderBeek). Some seatbelts for overflowing arrays in the ID3v2 support. Update the RPM spec (Submitted by Kyle VanderBeek). Fix some mem-leaks in the error case. Update to newer autotools versions. Update to use a recent libsndfile (submitted by libsndfile author). Intrinsics support enabled for gcc Robert Hegemann The newer VBR code is now LAME s default VBR routine Fixed in case of not enough bits the new vbr code incorrectly used old vbr routine Improved ATH adjustment in low volume cases Fixed (PSY model) mapping from convolution bands to partition bands was broken since we replaced tables by own calculation several years ago Fixed (PSY model) loss of fraction in equal loudness weighting Fixed (PSY model) in NSPSY highpass filter, out of bounds access in fircoef Known problem samples for the new VBR code many of them are at an acceptable quality level now;with a big Thank You to Francis Niechcial Modified VBR strategy to handle out of bits cases Restricted bitreservoir size for 320 kbps frames to the size used for sideinfo, because of decoding problems with FhG decoders installed on almost every Windows system LAME aborts on unsupported input files or unrecognized parameter options passed more often now Bug tracker item [ 1596306 ] "fatal error during initialization";an invalid MPEG samplerate was returned by optimum_samplefreq function Bug tracker item [ 1585942 ] lame not --silent when TERM not set;in case LAME was build with TERMCAP defined and no TERM environment is defined, now we do not issue an error message and silently fallback to the default behaviour as if LAME was compiled without TERMCAP defined. Bug tracker item [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;LAME was sometimes writing an invalid Xing/Info header Feature request [ 1588283 ] Flushing output stream in lame.exe; flush option added Added FFTSSE and FFT3DNOW assembler code from Lame4 branch Changes in lame frontend switches -k removed, add lowpass and highpass switches if you need to change them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches normal users shouldn t use them; -X -Z degraded to DEVELOPER ONLY switches, -X is too tough to communicate to end users and -Z isn t used actualy Fixed some console printing problems Windows ACM code now uses LAME library API only, all references to private include files are removed Windows DirectShow code now uses LAME library API only, all references to private include files are removed Windows disabled code that resets processor affinity, because this doesn t belong to LAME, but seems to work around some problems the parent process has (in most cases EAC) John33 Fixed mp2 and mp3 decoding For mp3 and mp2 decoding, this now yields the same output as foobar2000 but the error checking remains unchanged Gabriel Bouvigne VC8 project files Added support for x64 under VC8 Restricted MPEG 2.5 to 64kbps frames Takehiro Tominaga SSE version of FFT LAME 3.97 2006 9 24 3.97 beta 3 becomes 3.97 LAME 3.97 beta 3 2006 8 19 Gabriel Bouvigne Workaround against a short blocks detection issue LAME 3.97 beta 2 2005 11 26 Gabriel Bouvigne Fixed an initialization error when input is not using a standard sampling frequency Fixed a possible assertion failure in very low bitrate encoding Slight change regarding ATH adjustment with V5 Reinstated bit reservoir for 320kbps CBR ReplayGain analysis should now be faster when encountering silent parts Takehiro Tominaga Fixed a possible link problem of assembly code LAME 3.97 beta 1 2005 9 12 Takehiro Tominaga Fixed an out of array access in mp3rtp Fixed a quality setting in DLL Fixed display when using --silent Vitaly Ivanov Updated DirectShow interface Robert Hegemann Fixed an out of array access Fixed some small rounding problem in vbr-new quantization routines Fixed a bug in vbr-new regarding high frequencies (sfb21) when using -Y Fixed a few bugs in vbr-new when using -Y Updated scalefactors allocation scheme in vbr-new Fixed mingw32 configure problems Resolved some compiler warnings Updated command-line visualisation Gabriel Bouvigne Changed some FLOAT8 to FLOAT Added project files for VC7 Reworked -q1 and -q0 Updated presets Fixed an error in ISO quantization on systems not using the IEEE754 hack Faster quantization SSE version of init_xrpow Rog�io Brito Updated Debian packaging Documentation work Chris Miller Support for x64 platform SDK in makefile.msvc LAME 3.96.1 2004 7 25 Robert Hegemann Fixed a rare bug in vbr-new (could lead to crashes or data corruption) Gabriel Bouvigne some fixes in ACM codec fixed padding when encoding to 320kbps fixed block size selection for mid and side channels LAME 3.96 2004 4 11 Gabriel Bouvigne new quantization selection mode (used in ABR/CBR) set sfscale for ABR/CBR up to 160kbps LAME 3.96 beta 2 2004 3 28 Takehiro Tominaga removed unnecessary integer convertion in resampling Robert Hegemann reworked scalefactor allocation in vbr-new fixed a freeformat decoding problem Gabriel Bouvigne updated minimal bitrate for V1 and V2 Aleksander Korzynski added ability to disable ReplayGain analysis LAME 3.96 beta1 2004 3 7 Takehiro Tominaga fixed decoding issue Aleksander Korzynski changed internal ReplayGain handling fixed some issues when ReplayGain is used with resampling Robert Hegemann added standard ISO quantization for vbr-new, used at lower quality settings faster count_bits for vbr-new faster find_scalefac_ave function for vbr-new fixed an out of array access in psychoacoustic models; this bug could make some psy calculations worthless and sometimes let lame crash fixed an error on silent scalefactor bands; this bug resulted in huffman data overrun problems while decoding, resulting in audible glitches fixed a freeformat decoding bug Gabriel Bouvigne adjusted short block thresholds fixed some array addressing bugs made ReplayGain analysis reentrant David Chandler fixed a crash in quantize_xrpow Michal Bacik fixed a crash when using 8kHz Goran Markovic fixed some decoding bugs John Edwards fixed a too small buffer in ReplayGain code LAME 3.95.1 2004 1 12 Gabriel Bouvigne fixed a crash when using vbr-new changed ReplayGain reference level to 89dB LAME 3.95 2004 1 11 Gabriel Bouvigne fixed lowpass values when using vbr with mono files faster quantization loops faster count_bits fixed a buffer requirement error in ACM codec Takehiro TOMINAGA fixed mpglib and other decoding support code to prevent the crash when invalid mp3 input removed Layer I decoding support use FastLog and IEEE 754 hack on PowerPC too (approx. 10 percent faster) LAME 3.94 beta 2003 12 15 Takehiro Tominaga fixed block switching of nspsytune best huffman divide in the inner loop.This should improve the quality, but PAINFULLY slow. So it is not enabled by default. Use -q0 to use it. Changed -q option mapping. "-q2" until version 3.93 is now "-q3". saving bits by better scalefactor storing removed Vorbis support substep quantization.This should help breaking the SFB21 bloating problem made psychoacoustic model aware of ATH adjustements use ATH value as short block masking lower limit several fixes in psychoacoustic model more robust decoding Mark Taylor / Gabriel Bouvigne fixed issues in VBR header Mark Taylor workaround against some hardware decoder defficiencies Aleksander Korzynski ability to compute the "Radio" ReplayGain and detect clipping on the fly. The ReplayGain value is stored in the Lame tag. Gabriel Bouvigne work on presets use presets by default for cbr/abr use presets by default for vbr analog silence detection in partitionned sfb21 do not compute noise in upper 0 part of the spectrum only compute noise in modified scalefactor bands Guillaume Lessard nogap related changes Alexander Leidinger prevent closing the input fd prematurely if the input is a named pipe LAME 3.93.1 2002 12 1 Gabriel Bouvigne preset medium added to the dll interface fix for abr/cbr presets fix -q0 switch Alexander Leidinger fix link problem on systems where socket() resides in libsocket LAME 3.93 2002 11 16 Takehiro Tominaga bit allocation for pre-echo control improved for single channel encodings substep noise shaping optimizations by changing data structure noise shaping model 2 fix nspsytune FIR filter clean up fix small psymodel bugs(DC current estimation, preecho detection of non-VBR mode, and nspsymode initialization) portability fixes for Tru64 UNIX Albert Faber some fixes in the DLL Simon Blandford fixes for channel scaling in mono mode Dominique Duvivier some optimizations and a faster log10 function Mark Taylor some tag related fixes in the direct show filter and in the ACM codec fixed a mono encoding bug found by Justin Schoeman calc_noise bug fix other fixes Alexander Leidinger update to autoconf 2.53, rewrite some configure tests Akos Maroy determine gcc version even with gcc 3.1 Andrew Bachmann compile shared libs on BeOS (and perhaps other arches) ultrasparc switches for gcc 3.1 fixes for SunOS 4.x fixes for 64bit arches CFLAGS fix for IRIX don t override CFLAGS if exptopt isn t requested Robert Hegeman some fixes some fixes for VBR Gabriel Bouvigne --noasm switch. Might help Cyrix/Via users presets and alt-presets merged LAME 3.92 2002 4 14 Alexander Leidinger add non linear psymodel (compile time option, disabled by default), workaround a bug in gcc 3.0.3 (compiler options, based upon suggestions from various people, see archives and changelog for more) Steve Lhomme ACM wrapper (MS-Windows codec) Steve Lhomme less memory copying on stereo (interleaved) input Takehiro Tominaga Inter-channel masking, enables with --interch x option For buggy versions of gcc compiler (2.96*), back off on some of the advanced compiler options LAME 3.91 2001 12 29 Darin Morrison Bugfix for --alt-preset (for content with low volume, clean vocals), only important for the "fast standard" preset Alexander Leidinger add some missing files to the distribution add --alt-preset to the man page LAME 3.90 2001 12 21 Many small improvements and bug fixes not added to history John Dahlstrom more fine tuning on the auto adjustment of the ATH Robert Hegemann small speed and quality improvements for the old VBR code (--vbr-old). Robert Hegemann some short block bug fixes Robert Hegemann Big improvements to --vbr-mtrh, now encodes much more frequencies over 16khz Robert Hegemann --vbr-new code disabled (outdated and lower quality) and replaced with --vbr-mtrh (Both --vbr-new and --vbr-mtrh now default to mtrh) Robert Hegemann reordering of --longhelp to give more information, --extrahelp dropped Darin Morrison Totally revamped and extremely high quality unified preset system and other general quality improvements now available with --alt-presets some improvements to psychoacoustics (vast improvements over default L.A.M.E. modes) when --alt-preset is used including Improved tuning of short block usage. Improved quantization selection usage (the -X modes), now adapts between appropriate modes on the fly. Also helps on "dropout" problems and with pre-echo cases. Improved joint stereo usage. Thresholds are better tuned now and fix some "dropout" problems L.A.M.E. suffers from on clips like serioustrouble. Improved noise shaping usage. Now switches between noise shaping modes on the fly (toggles -Z on and off when appropriate) which allows lower bitrates but without the quality compromise. Clips vastly improved over default L.A.M.E. modes (vbr/cbr/abr, including --r3mix) castanets, florida_seq, death2, fatboy, spahm, gbtinc, ravebase, short, florida_seq, hihat, bassdrum, 2nd_vent_clip, serioustrouble, bloodline, and others. No degraded clips known. VBR bitrates are now more "stable" with less fluctuation -- not dipping too low on some music and not increasing too high unnecessarily on other music. "--alt-preset standard" provides bitrates roughly within the range of 180-220kbps, often averaging close to 192kbps. --alt-presets replace the --dm-presets and "metal" preset is removed and replaced with generic abr and cbr presets. --alt-preset extreme (note the e ) replaces xtreme to help eliminate some confusion --alt-preset vbr modes now have a fast option which offers almost no compromise in speed. --alt-preset standard (and "fast standard") are now much lower in bitrate, matching --r3mix with an overall average, though offering higher quality especially on difficult test samples. --alt-presets are no longer just "presets" as in a collection of switches, instead they are now quality "modes" because of special code level tunings (those mentioned above). Use --alt-preset help for more information. Roel VdB more tuning on the --r3mix preset Jon Dee, Roel VdB INFO tag Alexander Leidinger, mp3gain@hotmail.com added --scale-l and --scale-r to scale stereo channels independantly Takehiro Tominaga new noise shaping mode, offering more "cutting edge" shaping according to masking, enabled via -q0 Mark Taylor More work on --nogap Gabriel Bouvigne Small changes to abr code for more accurate final bitrate Gabriel Bouvigne, mp3gain@hotmail.com PreliminaryReplayGainanalysis code added (not functional yet) Gabriel Bouvigne, Alexander Leidinger Documentation updates John Dahlstrom, DSPguru@math.com floating point interface function in the Windows DLL LAME 3.89beta 2001 7 5 John Stewart long filename support for Win9x/NT. Takehiro Tominaga LAME can calculate the CRC of VBR header, so now "lame -pv" works fine. Robert Hegemann Improvements of the new VBR code (--vbr-mtrh). Robert Hegemann New VBR code (--vbr-mtrh) is now defaulted to get more feedback. The VBR speed is now on par with CBR. We will use the old VBR code in the release. Gabriel Bouvigne Change of the maximum frame size limit. LAME should now be more friendly with hardware players. Gabriel Bouvigne Size of VBR is now more balanced according to the -V value. Alexander Leidinger Finished the implementation of the set/get functions. John Dahlstrom LAME now handles 24bits input Mark Taylor bugs in lame --decode causing truncation of mp3 file fixed Mark Taylor preliminary --nogap support "Final" API completed shared library safe! This API is frozen and should be backwords compatiable with future versions of libmp3lame.so, but we will continue to add new functionality. LAME 3.88beta 2001 3 25 A lot of work that was never added to the History! Frank Klemm and Gabriel Bouvigne New ATH formula. Big improvement for high bitrate encodings. Takehiro Tominaga Temporal masking Gabriel Bouvigne/Mark Taylor auto adjustment of ATH Robert Hegemann Better outer_loop stopping criterion. Enabled with -q2 or better. Robert Hegemann/Naoki Shibata slow/carefull noise shaping. -q3..9 amplify all distorted bands. -q2 amplify distorted bands within 50%. -q1-0 amplify only most distorted band at each iteration. Takehiro Tominaga Interframe, shortblock temporal masking. Takehiro Tominaga LAME restructured into a shared library and front end application. Slight changes to the API. More changes are coming to turn LAME into a true shared library (right now you have to recompile if you upgrade the library -( Naoki Shibata improvements to psychoacoustics(--nspsytune) BUG in long block pre echo control fixed(some out of range array access in M/S psychoacoustics) Ralf Kempkens Visual Basic Script for lame, suggested to put it on your Windows Desktop and you can drag n drop Waves to encode on it. Alexander Stumpf improved lame.bat for 4Dos users Mark Taylor Several bugs fixed in the resampling code. Frank Klemm, Robert Hegemann added assembler code for CPU feature detection on runtime (MMX, 3DNow, SIMD) Takehiro Tominaga 3DNow FFT code. Florian Bome, Alexander Leidinger more work on configure stuff Alexander Leidinger automake/libtool generated Makefiles and TONS of other work. Alexander Leidinger Much work towards shared library style API. Anonymous New more efficient RTP code. Mark Taylor psycho-acoustic data now computed for all scalefactor bands (up to 24 kHz) Mark Taylor, Takehiro Tominaga All ISO table data replaced by formulas - should improve MPEG2.5 results for which we never had correct table data. LAME 3.87alpha 2000 9 25 Mark Taylor Bug fixed in LAME/mpglib error recovery when encountering a corrupt MP3 frame during *decoding*. Albert Faber added LayerI+II decoding support Frank Klemm added improved CRC calculation Frank Klemm substantial code cleanup/improvements Robert Hegemann Bug fixes in huffman_init, could lead to segmentation faults (only in rare cases, most likely at lower sample rates) M/S switching at lower sample rates(the fact there is no 2nd granule was ignored) Robert Hegemann speed up in VBR Jarmo Laakkonen Amiga/GCC settings for Makefile.unix. Magnus Holmgren README and Makefile for (free) Borland C++ compiler. Will also compile lame_enc.dll, but this is untested. Florian Bome LAME finally has a ./configure script!! LAME 3.86beta 2000 8 6 Christopher Wise A makefile for DJGPP, the DOS version of gcc. Now most windows users should be able to compile LAME with minimal effort. Robert Hegemann old VBR fixed some bugs and Takehiro s scalefac_scale feature (not yet on by default.) older LAME versions did not allow to spent more than 2500 bits of 4095 possible bits to a granule per channel, now fixed. Robert Hegemann new VBR analog silence treatment like in old VBR William Welch Improved options for Linux/Alpha gcc and ccc compilers in Makefile. Mathew Hendry setting appropriate CRC bit for additional Xing-VBR tagging frame Don Melton added ID3 version 2 TAG support John Dahlstrom fixed bug allowing timing information (for status in command line encoder) to overflow. Tamito KAJIYAMA, Fixed several bugs in the LAME/Vorbis interface. Mark Taylor lame --decode will recognizeAlbum ID tags Naoki Shibata Additive masking and other improvements to psycho acoustics. (not yet on by default) LAME 3.85beta 2000 7 3 Takehiro Tominaga mid/side stereo demasking thresholds updated. Takehiro Tominaga New short block MDCT coefficient data structure. Should allow for future speed improvements. Robert Hegemann fixed bug in old VBR routine, the --noath mode messed up the VBR routine resulting in very large files Robert Hegemann found bugs in some sections when using 32 bit floating point. Default is now back to 64bit floating point. Takehiro Tominaga Modified PE formula to use ATH. S.T.L. README.DJGPP - instructions for compiling LAME with DJGPP, the dos version of gcc. LAME 3.84beta 2000 6 30 Mark Weinstein .wav file output (with --decode option) was writing the wrong filesize in the .wav file. Now fixed. Mark Taylor (optional) Vorbis support, both encoding and decoding. LAME can now produce .ogg files, or even re-encode your entire .ogg collection into mp3. (Just kidding it is always a bad idea to convert from one lossy format to another) ? Bug fixed causing VBR to crash under windows. (pretab[] array overflow) Sergey Sapelin Another bug found in the mpg123 MPEG2 tables. Now fixed for the mpg123 based decoder in LAME. Marco Remondini VBR histogram works in win32. compile with -DBRHIST -DNOTERMCAP Takehiro Tominaga LAME CBR will now use scalefac_scale to expand the dynamic range of the scalefactors. Iwasa Kazmi Library improvements exit() s, printf, fprintf s are being replaced by interceptable macros. LAME 3.83beta 2000 5 19 Mark Taylor Bug in buffering routines in some cases, could cause MDCT to read past end of buffer. Rare in MPEG2, even more rare for MPEG1, but potentially serious! Mark Taylor MDCT/polyphase filterbank was not being "primed" properly. Does not effect output unless you set the encoder delay lower than the default of 576 samples. Mark Taylor "vdbj" and "Caster" found several VBR bugs (now fixed) 1. Analog silence detection only checked frequencies up to 16 kHz. 2. VBR mode could still somehow avoid -F mode. 3. VBR mode would ignore noise above 16 kHz (scalefactor band 22), Now calc_noise1 will compute the noise in this band when in VBR mode. Not calculated in CBR mode since CBR algorithm has no way of using this information. Mark Taylor scalefactor band 22 info (masking(=ATH), noise and energy) now displayed in frame analyzer. VBR code ATH tuning was disabled by accident in 3.81, now fixed. Mark Taylor lame --decode will produce .wav files. (oops - size is off by a factor of 4) LAME 3.82beta 2000 5 11 Robert Hegemann Fixed bug in high bitrate joint stereo encodings. Naoki Shibata new long block MDCT routine LAME 3.81beta 2000 5 8 all ISO code removed! Takehiro Tominaga and Naoki Shibata new window subband routines. Naoki Shibata Bug fix in mpglib (decoding) lib in some cases, MDCT coefficients from previous granule was incorrectly used for the next granule. ISO 7680 bit buffer limitation removed. It can be reactivated with "--strictly-enforce-ISO" Please report any trouble with high bitrates. LAME 3.80beta 2000 5 6 Takehiro Tominaga more efficient and faster huffman encoding! Takehiro Tominaga and Mark Taylor much improved short block compression! Tomasz Motylewski and Mark Taylor MPEG2.5 now supported! Mark Taylor incorporated Takehiro s bitstream.c! bitstream.c used by default, but old ISO bitstream code can also be used. Scott Manley and Mark Taylor good resampling routine finaly in LAME. uses a 19 point FIR filter with Blackman window. Very slow for non integer resampling ratios. Iwasa Kazmi fixed SIGBUS error VBR and id3 tags were using data after it was free() d. Robert Hegemann Improved VBR tuning. #define RH_QUALITY_CONTROL and #RH_SIDE_VBR now the defaults. Robert Hegemann LAME version string now added to ancillary data. Kimmo Mustonen VBR histogram support for Amiga. Casper Gripenberg VBR stats (but not histogram) for DOS verson. Robert Hegemann rare VBR overflow bug fixed. Zack -F option strictly enforces the VBR min bitrate. Without -F, LAME will ignore the minimum bitrate when encoding analog silence. Shawn Riley User can now specify a compression ratio (--comp arg ) instead of a bit rate. Default settings based on a compression ratio of 11.0 Mark Taylor free format bitstreams can be created with --freeformat, and specify any integer bitrate from 8 to 320kbs with -b. Mark Taylor lame be used as a decoder (output raw pcm only) lame --decode input.mp3 output.pcm LAME 3.70 2000 4 6 "LAME 3.69beta" becomes LAME 3.70 "stable" LAME 3.69beta 2000 4 6 "spahm" default mode selection bug fixed. In some cases, lame was defaulting to regular stereo instead of jstereo when the user did not specify a mode. LAME 3.68beta 2000 4 4 Mark Taylor mono encoding bug in DLL fixed. Ingo Saitz bug in --cwlimit argument parsing fixed. Scott Manly bug in 4-point resample code fixed. LAME 3.67beta 2000 3 27 Robert Hegemann jstereo now enabled for MPEG2 encodings Mark Taylor old M/S stereo mode which used L/R maskings has been removed. Mark Taylor Xing MPEG2 VBR headers now working. Mark Taylor When quantized coefficients are all 0 in a band, set scalefactors to 0 also to save a few bits. Ingo Saitz Problems with framesize calculation when using -f fast-math option fixed. LAME 3.66beta 2000 3 21 Bug fixes in BladeEnc DLL, possible click in last mp3 frame, VBR historgram display, byteswapping option, ASM quantize routines work for both float and double. LAME 3.65beta 2000 3 17 Enabled ASM version of quantize_xrpow() - accidently disabled in lame3.64. LAME 3.64beta 2000 3 16 Don Melton id3v1.1 tags id3 bugfixes Gabriel Bouvigne L/R matching block type fix Bug fixed which was allowing quantized values to exceed the maximum when not using -h Mark Taylor Fitlers based on polyphase filterbank. should be slightly better since the responce is independent of the blocktype, and they are slightly faster. Mark Taylor API the API changed slightly - and this should be the final version. There is a new routine lame_encode_buffer() which takes an arbritray sized input buffer, resamples filters if necessary, encodes, and returns the mp3buffer. There are also several new #defines, so it is possible to compile a simple encoding library with no decoding or file I/O or command line parsing. see the file API for details. Mark Taylor MSVC stuff lame.exe (with and without the frame analyzer) and the CDex lame_enc.dll should compile under MSVC. The MSVC5 project files may need some tweaking. In particular, you need to make sure LAMEPARSE, LAMESNDFILE and HAVEMPGLIB are defined. (and HAVEGTK for the GTK stuff). LAME 3.63beta 2000 2 20 Robert Hegemann FPE with -h fixed? Mathey Hendry FPE error catching for Cygwin, FPE fix for vbr mode and output to /dev/null Jeremy Hall Fixed problems with input files where the number of samples is not known. Mathew Hendry ASM quantize_xrpow() for GNU i386 Wilfried Behne quantize_xrpow ()for PowerPC and non-ASM Takehiro Tominaga GOGO FFTs (not yet used?) LAME 3.62beta 2000 2 9 Iwasa Kazmi frame analyzer short block display of single subblocks (press 1,2 or 3) Ingo Saitz --help option added, with output to stdout Alfred Weyers short block AAC spreading function bug fixed Takehiro Tominaga new scalefac data structure - improves performance! Lionel Bonnet Bug fixed in MPEG2 scalefactor routine scalefactors were being severly limited. Takehiro Tominaga faster FFT routines from. These routines are also compatible with the GOGO routines, in case someone is interested in porting them back to LAME. Sigbjørn Skjæret, Takehiro Tominaga faster pow() code. Joachim Kuebart Found some unitialized variables that were effecting quality for encodings which did not use the -h option (now fixed). Mark Taylor More modularization work. It is now possible to use LAME as a library where you can set the encoding parameters directly and do your own file i/o. The calling program is now it s own mp3 output. For an example of the LAME API, see main.c, or mp3rtp.c or mp3x.c. These can all be compiled as stand alone programs which link with libmp3lame.a. Felix vos Leitner mp3rtp fixes. mp3rtp is a standalone program which will encode and stream with RTP. Robert Hegemann Information written to stderr displaying exactly which type of lowpass filter (if any) is being used. Iwasa Kazmi mpglib (the mpg123 decoder) scsfi decoding fixes. Takehiro Tominaga More mpglib scsfi decoding fixes. LAME 3.61beta 2000 1 14 Mark Taylor Fixed bug with lowpass filters when using VBR with a 64kbs or lower min bitrate setting. Takehiro Tominaga more efficient huffman encoding splitting. LAME 3.60beta 2000 1 9 Mark Taylor Distribution now comes with self test. Needs work to be automated, see make test in Makefile. Mark Taylor AAC spreading function now the default Gabriel Bouvigne updated HTML docs Felix von Leitner compute correct file length from Xing header (if present) when input file is a mp3 file Felix von Leitner mp3rtp (standalone) program now included. Not yet tested. mp3rtp ip port ttl infile /dev/null will stream directly to ip port using RTP. LAME 3.59beta 2000 1 4 Takehiro Tominaga --noath option. Disables ATH maskings. Gabriel Bouvigne updated HTML docs. Iwasa Kazmi makefile fixes Mark Taylor Fixed bug where first frame of data was always overwritten with 0 s. Thanks to gol Mark Taylor bug fixes in mid/side masking ratios (thanks to Menno Bakker) Mark Taylor replaced norm_l, norm_s table data with formulas. LAME 3.58beta 1999 12 13 Segher Boessenkool More accurate quantization procedure! Enabled with -h. Mathew Hendry, Acy Stapp and Takehiro Tominaga ASM optimizations for quantize_xrpow and quantize_xrpow_ISO. Chuck Zenkus "encoder inside" logo on web page Mark Taylor a couple people have asked for this. Allow LAME to overide VBR_min_bitrate if analog_silence detected. Analog_silence defined a la Robert energy ATH. An Van Lam Valid bitrates were being printed for layer 2, not layer 3! Ethan Yeo Makefile.MSVC updated Mark Stephens updated all MSVC project files Robert Hegemann lowpass and highpass filters can be enabled with --lowpass, --highpass Mark Taylor MS switching is now smoother ms_ratio average over 4 granules Takehiro Tominaga Scalefactor pre-emphasis fixed (and now turned back on) Takehiro Tominaga Bug in M/S maskings switch to turn on stereo demasking code was buggy. LAME 3.57beta 1999 11 22 Sigbjørn Skjæret, patch to allow encoding from 8bit input files when using LIBSNDFILE Mark Taylor Automatic downsampling to nearest valid samplerate. Mark Taylor Scalefactor bands demarked on MDCT plot in frameanalyzer Mark Taylor Scalefactor preemphasis disabled for now. The algorithm was often doing more harm than good. LAME 3.56beta 1999 11 19 Kimmo Mustonen portabilty code cleanup. Vladimir Marek id3 genre patch. Conrad Sanderson new applypatch script. Mark Taylor Initial window type now "STOP_TYPE" to reduce initial attenuation. This is needed because the new encoder delay is so short. With a NORM_TYPE, the first 240 samples would be attenuated. Mark Taylor Padding at end of file now adjusted (hopefully!) to produce as little padding as possible while still guarantee all input samples are encoded. Takehiro Tominaga Reduced shortblock extra bit allocation formulas by 10% since new huffman coding is at least 10% more efficient. LAME 3.55beta 1999 11 11 Albert Faber updated BladeEnc.dll Mark Taylor Simple lowpass filter added to linear downsampling routine. Nils Faerber updated man page. Mark Taylor All floating point variables are delcared FLOAT or FLOAT8. Change the definition of FLOAT8 in machine.h to run at 32bit preceision. Mark Taylor Bug (introduced in 3.54beta) in stereo- mono downsampling fixed. LAME 3.54beta 1999 11 8 Mark Taylor Encoder delay is now 48 samples. Can be adjusted to 1160 to sync with FhG (see ENCDELAY in encoder.h) This is kind of amazing, since if Takehiro put his MDCT/filterbank routine in a decoder, we could have a total delay of only 96 samples. Mark Taylor More inconstancies found and fixed in MPEG2 tables. Mark Taylor Resampling from an MP3 input file now works. But we still dont have a lowpass filter so dont expect good results. LAME 3.53beta 1999 11 8 Takehiro Tominaga Fixed MPEG2 problem in new MDCT routines. Takehiro s combined filterbank/MDCT routine is now the default. Removes all buffering from psymodel.c and the filterbanks/MDCT routines. LAME 3.52beta 1999 11 8 By permission of copyright holders of all GPL code in LAME, all GPL code is now released under a modified version of the LGPL (see the README file) By popular demand, all C++ comments changed to C style comments Mark Taylor Linear resampling now works. Use --resample to set an output samplerate different from the input samplerate. (doesn t seem to work with mp3 input files, and there is no lowpass filter, so dont expect good results just yet) Takehiro Tominaga Faster Huffman encoding routines The following changes are disabled because of MPEG2 problems. But to try them, set MDCTDELAY=48 in encoder.h, instead of MDCTDELAY=528. Takehiro Tominaga New MDCT routines with shorter delay (48 samples instead of 528) and even faster than the old routines. Takehiro Tominaga Removed extra buffering in psymodel.c LAME 3.51 1999 11 7 Takehiro Tominaga Bug in quantize.c absolute threshold of hearing calculation for non-44.1 kHz input files. LAME 3.50 1999 11 1 LAME 3.37beta becomes official LAME 3.50 release LAME 3.37beta 1999 11 1 Lionel Bonnet Found severe bug in MPEG2 Short block SNR. Sergey Sapelin VBR Toc improvement. Sergey Dubov fskip() routine Conrad Sanderson replacement for filterbank.c. Not much faster but amazingly simpler. LAME 3.36beta 1999 10 25 Albert Faber more MSVC and BladeDLL updates Kimmo Mustonen Much code cleanup and Amiga updates Anton Oleynikov Borland C updates Mark Taylor More stdin fixes For some reason, forward fseek() s would fail when used on pipes even though it is okay with redirection from " ". So I changed all the forward fseek() s to use fread(). This should improve stdin support for wav/aiff files. If you know the input file is raw pcm, you can still use the -r option to avoid *all* seeking of any kind. LAME 3.35beta 1999 10 21 Leonid Kulakov Serious bug in MPEG2 scalefactor band tables fixed. Portability patches from Anton Oleynikov, Sigbjørn Skjæret, Mathew Hendry, Richard Gorton Alfred Weyers compiler options, updated timestatus. Albert Faber BladeDll and other updates (new machine.h). Monty updated Makefile to fix gcc inline math bug. LAME 3.34beta 1999 10 12 Mark Taylor Bug fixed minimum bitrate in VBR mode could be ignored for a few frames. Mark Taylor New (minor) VBR tunings. Tim Ruddick New wav/aiff header parsing routines. Better parsing and fewer fseek() s. Anton Oleynikov patches to work with Borland C Gabriel Bouvigne Experimental voice option enabled with --voice LAME 3.33beta 1999 10 11 Robert Hegemann RH VBR mode now the default and only VBR mode. The new code will always quantize to 0 distortion and the quality is increased by reducing the masking from the psy-model. -X0 is still the default for now. Robert Hegemann new -X5 mode Mathew Hendry New timing code, removes the need for HAVETIMES Mathew Hendry assembler quantize_xrpow for Windows Iwasa Kazmi stdin/stdout patch for Windows Mark Taylor New option "--athonly" will ignore the psy-model output and use only the absolute threshold of hearing for the masking. LAME 3.32beta 1999 10 8 Takehiro Tominaga faster long block spreading function convolution for non 44.1 kHz sampling frequencies, and faster short block spreading function convolution for all sampling frequencies. Takehiro Tominaga Completly rewritten huffman table selection and count_bits(). More efficient table selection results in many more bits per frame. Takehiro Tominaga More efficient scalefac compress setting. Mike Cheng new calc_noise2() Alfred Weyers patch for timestatus() seconds rollover LAME 3.31beta 1999 9 28 Albert Faber updated his BladeDLL code. This allows LAME to be compiled into a BladeEnc compatiable .dll. Mike Cheng faster l3psycho_ener() routine. Sigbjørn Skjæret more code cleanup. LAME 3.30beta 1999 9 27 Conrad Sanderson ID3 tag code added (type lame for instructions) new mdct.c from Mike Cheng (no faster, but much cleaner code) Mathew Hendry Microsoft nmake makefile and a couple other changes for MSVC More modulization work One input sound file interface handles mp3 s, uncompressed audio, with or without LIBSNDFILE. Fixes (hopefully) a bunch of file I/O bugs introduced in 3.29 (Mark Taylor) LAME will now print valid samplerate/bitrate combinations (Mark Taylor) stdin/stdout fix for OS/2 (Paul Hartman) For mp3 input files, totalframes estimated based on filesize and first frame bitrate. (Mark Taylor) Updated all functions with new style prototypes. (Sigbjørn Skjæret) LAME 3.29beta 1999 9 21 Bug in bigv_bitcount fixed. Loop.c was overestimating the number of bits needed, resulting in wasted bits every frame. (Leonid A. Kulakov) Bug in *_choose_table() fixed These routines would not sellect the optimal Huffman table in some cases. (Leonid A. Kulakov) Tuning of ATH normalization (macik) Removed unused variables and fixed function prototypes (Sigbjørn Skjæret) Sami Farin sent a .wav file that LAME built in support choked on. I added a slightly more sophisticated wav header parsing to handle this, but if you have trouble, use libsndfile. Resampling hooks and options added. Buffering and resampling routines need to be written. LAME will now take an mp3 file as input. When resampling code is working, LAME will be able to (for example) convert a high bitrate stereo mp3 to a low bitrate mono mp3 for streaming. LAME 3.28beta 1999 9 15 Serious bug fixed in high frequency MDCT coefficients. Huffman coding was reversing the order of the count1 block quadruples. (Leonid A. Kulakov) nint() problems under Tru64 unix fixed and preprocessor variable HAVE_NINT removed. (Bob Bell) Compiler warning fixes and code cleanup (Sigbjørn Skjæret, Lionel Bonnet) USAGE file now includes suggestions for downsampling. For low bitrate encodings, proper downsampling can give dramatically better results. (John Hayward-Warburton) LAME 3.27beta 1999 9 12 Several bugs in encode.c and l3bitstream.c fixed by Lionel Bonnet. Bugs in new VBR (#define RH) formula for mono input file and mid/side encoding fixed. LAME 3.26beta 1999 9 10 The "-m m" option (mono .mp3 file) will automatically mix left and right channels if the input file is stereo. (Alfred Weyers) New quant_compare algorithm (method for deciding which of two quantizations is better) enabled with -X4 (Greg Maxwell) New mid/side VBR bit allocation formula. Mid channel bits are set by the quality requirements, and then the side channel uses a reduced number of bits (in a proportion coming from the fixed bitrate code). This might not be optimal, but it should be pretty good and no one knows what the optimal solution should be. (Greg Maxwell) New VBR (#define RH) tunings based on detailed listening tests by Macik and Greg Maxwell. Sigbjørn Skjæret fixed several compiler warnings (which turned out to be potential bugs) Takehiro Tominaga fixed a low bitrate bug in reduce_side() Alfred Weyers fixed some buffer overflows. New ATH (absolute threshold of hearing) formula replaces buggy ISO code, and adds analog silence treatment (removal of coefficients below below ATH). These are turned on by default but have not been fully tested. (Robert Hegemann) Bug in short block spreading function fixed. (Robert Hegemann) LAME 3.25beta 1999 8 22 Sigbjørn Skjæret fixed a zero byte malloc call. This bug was introduced in 3.24 and causes problems on non Linux systems. Bit allocation routines would sometimes allocate more than 4095 bits to one channel of one granule. A couple of people reported problems that might be caused by this, especially at higher bitrates. Nils Faerber updated the man page and fixed many of the compiler warnings. LAME 3.24beta 1999 8 15 This release contains the following new code (for developers) which is disabled by default Robert Hegemann Completely overhauled VBR code. Now computes exact number of bits required for the given qualty and then quantized with the appropriate bitrate. Several new quantization quality measures. LAME 3.23beta 1999 8 8 Very nice continuously updated VBR histogram display from Iwasa Kazmi. (disabled with --nohist). More modulerization work. The encoding engine can now be compiled into libmp3lame, but the interface is awkward. Bug fixed in FFT Hann window formula (Leonid A. Kulakov). New LAME logo on the download page. Created by Chris Michalisles. Several VBR algorithm improvements from Robert Hegemann. New quantization noise metrics and VBR quality measure takes into account mid/side encoding. Should produce smaller files with the same quality, especially when using jstereo. LAME 3.22beta 1999 7 27 Downsampling (stereo to mono) bug with MPEG2 fixed. (Mike Oliphant) Downsampling now merges L R channels - before it only took the L channel. More modularization and code cleanup from Albert Faber and myself. Input filesize limit removed for raw pcm input files. For other file types, LAME will still only read the first 2^32 samples, (27 hours of playing time at 44.1 kHz). LAME 3.21beta 1999 7 26 Correct Mid/Side masking thresholds for JSTEREO mode! This is enabled with -h. It makes LAME about 20% slower since it computes psycho-acoustics for L,R Mid and Side channels. "Analog silence" threshold added. Keeps VBR from upping the bitrate during very quite passages. (Robert.Hegemann) New VBR quality setting from Robert Hegemann. It is based on the idea that distortion at lower bit rates sounds worse than at higher bitrates, and so the allowed distortion (VBR quality setting) is proportional to the bitrate. Because of this, default minimum bitrate is now 32kbs. Expermental subblock gain code enabled with -Z. New "-r" option for raw pcm input files. With -r, LAME will not do any fseek() s or look for wav and aiff headers on the input file. Bug fixes in mp3x (frame analyzer) for viewing frames near end of the file. Bug fixed to allow setting the sampling rate of raw pcm input files. LAME 3.20beta 1999 7 19 Bug in get_audio.c fixed. Libsndfile wrappers would not compile (Miguel Revilla Rodriguez) Nils Faerber found some unitialized variables and some wierd extranous computations in filter_subband, now fixed. This was causing seg faults on some machines. LAME 3.19beta 1999 7 18 Oops! Robert Hegemann immediatly found a bug in the new (old -Z option) quantization code. calc_noise1 was not returning tot_noise, so non ms-stereo frames were buggy. LAME 3.18beta 1999 7 17 Many psycho-acoustic bug fixes. Dan Nelson discovered a bug in MPEG2 For short blocks, the code assumes 42 partition bands. MPEG1 sometimes has less, MPEG2 can have more. In MPEG1, this bug would not have effected the output if your compiler initializes static variables to 0 on creation. In MPEG2 it leads to array out-of-bounds access errors. Finally, there was a related bug in MPEG1/MPEG2, short long blocks where the energy above 16 kHz was all added to partition band 0. (the lowest frequeny partition band!) The -Z option (Gabriel Bouvigne s idea of using total quantization noise to choose between two quantizations with the same value of "over") is now the default. I believe this helps remove the trilling sound in Jan s testsignal4.wav. The quality of testsignal2.wav and testsignal4.wav are now better than Xing and getting closer to FhG. Bug fixes in frame sample count for downsampling mode. (ben "jacobs") Patches to improve modulization. (ben "jacobs") LAME 3.17beta 1999 7 11 substantial code cleanup towards goal of making LAME more modular. LAME 3.16beta 1999 7 11 New tunings of window switching, and better bit allocation based on pe. (Jan Rafaj. improves both testsignal2.wav and testsignal4.wav). Bug in mid/side quantization when side channel was zero fixed. (Albert Faber) Removed some extranous computations in l3psy.c (Robert Hegemann) More detailed timing status info, including hours display. (Sakari Ailus) and percentage indicator (Conrad Sanderson). Window_subband and calc_noise1,calc_noise2 speedups. Quantize_xrpow speedup should be significant on non GNU/intel systems. (Mike Cheng) Better initial guess for VBR bitrate. Should speed up VBR encoding. (Gabriel Bouvigne) More advanced .wav header parsing. fixes bugs involving click in first frame. (Robert.Hegemann) Correct filesize and total frame computation when using LIBSNDFILE (ben "jacobs") Click in last frame (buffering problem) when using libsndfile fixed. Audio I/O code overhauled. There is now a uniform audio i/o interface to libsndfile or the LAME built in wav/aiff routines. All audio i/o code localized to get_audio.c. LAME 3.15beta times()/clock() problem fixed for non-unix OS. (Ben "Jacobs") Fixed uninitialized pe[] when using fast mode. (Ben "Jacobs") LAME 3.13 1999 6 24 Patches for BeOS from Gertjan van Ratingen. Makefile info for OS/2 Warp 4.0 (from dink.org). Status display now based on wall clock time, not cpu time. mem_alloc no longer allocates twice as much memory as needed (Jan Peman). 3.12pre9 Updated BLADEDLL code to handle recent changes (Albert Faber). Bug fixed in parsing options when not using GTK (Albert Faber). MPEG2 Layer III psycho acoustics now working. Improved huffman encoding Chris Matrakidis. (10% faster). I dont know how he finds these improvements! LAME with full quality now encodes faster than real time on my PII 266. Fixed time display when encoding takes more than 60 minutes. 3.12pre8 Newmid/side stereocriterion. LAME will use mid/side stereo only when the difference between L R masking thresholds (averaged over all scalefactors) is less then 5db. In several test samples it does a very good job mimicking the FhG encoder. Bug in mid/side stereo fixed independent variation of mid side channel scalefactors disabled. Because of the way outer_loop is currently coded, when encoding mid/side coefficietns using left/right thresholds, you have to vary the scalefactors simultaneously. Bug in side/mid energy ratio calculation fixed. (Thanks to Robert Hegemann) Default mode is stereo (not jstereo) if bitrate is chosen as 192kbs or higher. Tero Auvinen first pointed out that FhG seems to think at 160kbs, their encoder is so good it doesn t need jstereo tricks. Since LAME is not as good as FhG, I am going to claim that 192kbs LAME is so good it doens t need jstereo tricks, and thus it is disabled by default. WAV header parsing for big-endian machines, and automatic detection of big-endian machines. (Thanks to Sigbjørn Skjæret). added 56 sample delay to sync LAME with FhG. MP3x (frame analyzer) can now handle MPEG2 streams. 3.12pre7 MPEG2 layer III now working! lower bit rates (down to 8kbs) and 3 more sampling frequencies 16000, 22050, 24000Hz. Quality is poor - the psy-model does not yet work with these sampling frequencies. Fixed "ERROR outer_loop() huff_bits 0." bug when using VBR. bash and sh scripts to run LAME on multiple files now included. (from Robert Hegemann and Gerhard Wesp respectively) bug fix in encoding times for longer files from (Alvaro Martinez Echevarria) yet another segfault in the frame analyzer fixed. ISO psy-model/bit allocation routines removed. This allowed makeframe() to be made much simpler, and most of the complicated buffering is now gone. Eventually I would like the encoding engine to be a stand alone library. 3.12pre6 Better VBR tuning. Find minimum bitrate with distortion less than the allows maximum. A minimum bit rate is imposed on frames with short blocks (where the measured distortion can not be trusted). A minimum frame bitrate can be specified with -b, default=64kbs. LIBSNDFILEsupport. With libsndfile, LAME can encode almost all sound formats. Albert Faber did the work for this, including getting libsndfile running under win32. CRC checksum now working! (Thanks to Johannes Overmann ) frame analyzer will now work with mono .mp3 files more code tweeks from Jan Peman. Compaq-Alpha(Linux) fixes and speedups from Nils Faerber. Faster bin_search_StepSize from Juha Laukala. Faster quantize() from Mike Cheng Faster quantize_xrpow() from Chris Matrakidis. xrpow_flag removed since this option is now on by default. Fixed .wav header parsing from Nils Faerber. Xing VBR frame info header code from Albert Faber. "Xing" and "LAME 3.12" embedded in first frame. Bug in VBR bit allocation based on "over" value fixed. LAME 3.11 1999 6 3 Almost all warnings (-Wall) now fixed! (Thanks to Jan Peman) More coding improvements from Gabriel Bouvigne and Warren Toomey. VBR (variable bit rate). Increases bit rate for short blocks and for frames where the number of bands containing audible distortion is greater than a given value. Much tuning needs to be done. Patch to remove all atan() calls from James Droppo. LAME 3.10 1999 5 30 Fast mode (-f) disables psycho-acoustic model for real time encoding on older machines. Thanks to Lauri Ahonen who first sent a patch for this. New bit reservoir usage scheme to accommodate the new pre-echo detection formulas. Tuning of AWS and ENER_AWS pre-echo formulas by Gabriel Bouvigne and myself. They work great! now on by default. In jstereo, force blocktypes for left right channels to be identical. FhG seems to do this. It can be disabled with "-d". Patches to compile MP3x under win32 (Thanks to Albert Faber). bin_serach_stepsize limited to a quantizationStepSize of -210 through 45. outer_loop() will now vary Mid Side scalefactors independently. Can lead to better quantizations, but it is slower (twice as many quantizations to look at). Running with "-m f" does not need this and will run at the old speed Bug in inner_loop would allow quantizations larger than allowed. (introduced in lame3.04, now fixed.) Updated HTML documentation from Gabriel Bouvigne. Unix man page from William Schelter. numlines[] bug fixed. (Thanks to Rafael Luebbert, MPecker author). Quantization speed improvements from Chirs Matrakidis. When comparing quantizations with the same number of bands with audible distortion, use the one with the largest scalefactors, not the first one outer_loop happened to find. Improved defination of best quantization when using -f (fast mode). subblock code now working. But no algorithm to choose subblock gains yet. Linux now segfaults on floating point exceptions. Should prevent me from releasing binaries that crash on other operating systems. LAME 3.04 1999 5 22 Preliminary documentation from Gabriel Bouvigne. I wouldn t have thought it was possible, but now there are even more speed improvements from Chris Matrakidis! Removed one FFT when using joint stereo, and many improvements in loop.c. "Fake" ms_stereo mode renamed "Force" ms_stereo since it forces mid/side stereo on all frames. For some music this is said to be a problem, but for most music mode is probably better than the default jstereo because it uses specialized mid/side channel masking thresholds. Small bugs in Force ms_stereo mode fixed. Compaq Alpha fixes from Nathan Slingerland. Some new experimental pre-echo detection formulas in l3psy.c (#ifdef AWS and #ifdef ENER_AWS, both off by default. Thanks to Gabriel Bouvigne and Andre Osterhues) Several bugs in the syncing of data displayed by mp3x (the frame analyzer) were fixed. highq (-h) option added. This turns on things (just one so far) that should sound better but slow down LAME. LAME 3.03 1999 5 18 Faster (20%) cleaner FFT (Thanks to Chris Matrakidis http //www.geocities.com/ResearchTriangle/8869/fft_summary.html) mods so it works with VC++ (Thanks to Gabriel Bouvigne, www.mp3tech.org) MP3s marked "original" by default (Thanks to Gabriel Bouvigne, www.mp3tech.org) Can now be compiled into a BladeEnc compatible .DLL (Thanks to Albert Faber, CDex author) Patches for "silent mode" and stdin/stdout (Thanks to Lars Magne Ingebrigtsen) Fixed rare bug if a long_block is sandwiched between two short_blocks, it must be changed to a short_block, but the short_block ratios have not been computed in l3psy.c. Now always compute short_block ratios just in case. Fixed bug with initial quantize step size when many coefficients are zero. (Thanks to Martin Weghofer). Bug fixed in MP3x display of audible distortion. improved status display (Thanks to Lauri Ahonen). LAME 3.02 1999 5 12 encoder could use ms_stereo even if channel 0 and 1 block types were different. (Thanks to Jan Rafaj) added -k option to disable the 16 kHz cutoff at 128kbs. This cutoff is never used at higher bitrates. (Thanks to Jan Rafaj) modified pe bit allocation formula to make sense at bit rates other than 128kbs. fixed l3_xmin initialization problem which showed up under FreeBSD. (Thanks to Warren Toomey) LAME 3.01 1999 5 11 max_name_size increased to 300 (Thanks to Mike Oliphant) patch to allow seeks on input file (Thanks to Scott Manley) fixes for mono modes (everyone who pointed this out) overflow in calc_noise2 fixed bit reservoir overflow when encoding lots of frames with all zeros (Jani Frilander) LAME 3.0 1999 5 10 GPSYCHOの追加 (Mark Taylor) MP3xの追加 (Mark Taylor) LAMEはMark Taylorによってメンテナンスされます。
https://w.atwiki.jp/coinwiki/pages/53.html
This is a multi-threaded multi-pool FPGA and ASIC miner for bitcoin. This code is provided entirely free of charge by the programmer in his spare time so donations would be greatly appreciated. Please consider donating to the address below. Con Kolivas kernel@kolivas.org 15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ DOWNLOADS http //ck.kolivas.org/apps/cgminer GIT TREE https //github.com/ckolivas/cgminer Support thread http //bitcointalk.org/index.php?topic=28402.0 IRC Channel irc //irc.freenode.net/cgminer License GPLv3. See COPYING for details. SEE ALSO API-README, ASIC-README and FGPA-README FOR MORE INFORMATION ON EACH. EXECUTIVE SUMMARY ON USAGE Single pool cgminer -o http //pool port -u username -p password Multiple pools cgminer -o http //pool1 port -u pool1username -p pool1password -o http //pool2 port -u pool2usernmae -p pool2password Single pool with a standard http proxy cgminer -o "http proxy port|http //pool port" -u username -p password Single pool with a socks5 proxy cgminer -o "socks5 proxy port|http //pool port" -u username -p password Single pool with stratum protocol support cgminer -o stratum+tcp //pool port -u username -p password The list of proxy types are http standard http 1.1 proxy http0 http 1.0 proxy socks4 socks4 proxy socks5 socks5 proxy socks4a socks4a proxy socks5h socks5 proxy using a hostname If you compile cgminer with a version of CURL before 7.19.4 then some of the above will not be available. All are available since CURL version 7.19.4 If you specify the --socks-proxy option to cgminer, it will only be applied to all pools that don't specify their own proxy setting like above After saving configuration from the menu, you do not need to give cgminer any arguments and it will load your configuration. Any configuration file may also contain a single "include" "filename" to recursively include another configuration file. Writing the configuration will save all settings from all files in the output. BUILDING CGMINER FOR YOURSELF DEPENDENCIES Mandatory pkg-confighttp //www.freedesktop.org/wiki/Software/pkg-config libtoolhttp //www.gnu.org/software/libtool/ Optional curl dev library http //curl.haxx.se/libcurl/ (libcurl4-openssl-dev - Must tell configure --disable-libcurl otherwise it will attempt to compile it in) curses dev library (libncurses5-dev or libpdcurses on WIN32 for text user interface) libudev dev library (libudev-dev) (This is only required for USB device support and is linux only) If building from git autoconf automake If building on Red Hat sudo yum install autoconf automake autoreconf libtool openssl-compat-bitcoin-devel.x86_64 \ curl libcurl libcurl-devel openssh CGMiner specific configuration options --enable-avalon Compile support for Avalon (default disabled) --enable-bflsc Compile support for BFL ASICs (default disabled) --enable-bitforce Compile support for BitForce FPGAs (default disabled) --enable-bitfury Compile support for BitFury ASICs (default disabled) --enable-hashfast Compile support for Hashfast (default disabled) --enable-icarus Compile support for Icarus (default disabled) --enable-knc Compile support for KnC miners (default disabled) --enable-bab Compile support for BlackArrow Bitfury (default disabled) --enable-klondike Compile support for Klondike (default disabled) --enable-modminer Compile support for ModMiner FPGAs(default disabled) --without-curses Compile support for curses TUI (default enabled) --with-system-libusb Compile against dynamic system libusb (default use included static libusb) Basic *nix build instructions To actually build ./autogen.sh# only needed if building from git repo CFLAGS="-O2 -Wall -march=native" ./configure options make No installation is necessary. You may run cgminer from the build directory directly, but you may do make install if you wish to install cgminer to a system location or location you specified. Native WIN32 build instructions see windows-build.txt Usage instructions Run "cgminer --help" to see options Usage cgminer [-DdElmpPQqUsTouOchnV] Options for both config file and command line api-allow Allow API access (if enabled) only to the given list of [W ]IP[/Prefix] address[/subnets] This overrides --api-network and you must specify 127.0.0.1 if it is required W in front of the IP address gives that address privileged access to all api commands api-description Description placed in the API status header (default cgminer version) api-groups API one letter groups G cmd cmd[,P cmd *...] See API-README for usage api-listen Listen for API requests (default disabled) By default any command that does not just display data returns access denied See --api-allow to overcome this api-network Allow API (if enabled) to listen on/for any address (default only 127.0.0.1) api-mcast Enable API Multicast listener, (default disabled) The listener will only run if the API is also enabled api-mcast-addr arg API Multicast listen address, (default 224.0.0.75) api-mcast-code arg Code expected in the API Multicast message, don't use '-' (default "FTW") api-mcast-port arg API Multicast listen port, (default 4028) api-port Port number of miner API (default 4028) balance Change multipool strategy from failover to even share balance benchmark Run cgminer in benchmark mode - produces no shares compact Use compact display without per device statistics debug|-D Enable debug output device|-d arg Select device to use, one value, range and/or comma separated (e.g. 0-2,4) default all disable-rejecting Automatically disable pools that continually reject shares expiry|-E arg Upper bound on how many seconds after getting work we consider a share from it stale (default 120) failover-only Don't leak work to backup pools when primary pool is lagging fix-protocol Do not redirect to a different getwork protocol (eg. stratum) hotplug arg Set hotplug check time to arg seconds (0=never default 5) - only with libusb kernel-path|-K arg Specify a path to where bitstream files are (default "/usr/local/bin") load-balance Change multipool strategy from failover to quota based balance log|-l arg Interval in seconds between log output (default 5) lowmem Minimise caching of shares for low memory applications monitor|-m arg Use custom pipe cmd for output messages net-delay Impose small delays in networking to not overload slow routers no-submit-stale Don't submit shares if they are detected as stale pass|-p arg Password for bitcoin JSON-RPC server per-device-stats Force verbose mode and output per-device statistics protocol-dump|-P Verbose dump of protocol-level activities queue|-Q arg Minimum number of work items to have queued (0 - 10) (default 1) quiet|-q Disable logging output, display status and errors real-quiet Disable all output remove-disabled Remove disabled devices entirely, as if they didn't exist rotate arg Change multipool strategy from failover to regularly rotate at N minutes (default 0) round-robin Change multipool strategy from failover to round robin on failure scan-time|-s arg Upper bound on time spent scanning current work, in seconds (default 60) sched-start arg Set a time of day in HH MM to start mining (a once off without a stop time) sched-stop arg Set a time of day in HH MM to stop mining (will quit without a start time) sharelog arg Append share log to file shares arg Quit after mining N shares (default unlimited) socks-proxy arg Set socks4 proxy (host port) for all pools without a proxy specified syslog Use system log for output messages (default standard error) temp-cutoff arg Temperature where a device will be automatically disabled, one value or comma separated list (default 95) text-only|-T Disable ncurses formatted screen output url|-o arg URL for bitcoin JSON-RPC server user|-u arg Username for bitcoin JSON-RPC server verbose Log verbose output to stderr as well as status output userpass|-O arg Username Password pair for bitcoin JSON-RPC server Options for command line only config|-c arg Load a JSON-format configuration file See example.conf for an example configuration. help|-h Print this message version|-V Display version and exit USB device (ASIC and FPGA) options icarus-options arg Set specific FPGA board configurations - one set of values for all or comma separated icarus-timing arg Set how the Icarus timing is calculated - one setting/value for all or comma separated usb arg USB device selection (See below) usb-dump (See FPGA-README) See FGPA-README or ASIC-README for more information regarding these. ASIC only options avalon-auto Adjust avalon overclock frequency dynamically for best hashrate avalon-fan arg Set fanspeed percentage for avalon, single value or range (default 20-100) avalon-freq arg Set frequency range for avalon-auto, single value or range avalon-cutoff arg Set avalon overheat cut off temperature (default 60) avalon-options arg Set avalon options baud miners asic timeout freq avalon-temp arg Set avalon target temperature (default 50) bflsc-overheat arg Set overheat temperature where BFLSC devices throttle, 0 to disable (default 90) bitburner-fury-options arg Override avalon-options for BitBurner Fury boards baud miners asic timeout freq bitburner-fury-voltage arg Set BitBurner Fury core voltage, in millivolts bitburner-voltage arg Set BitBurner (Avalon) core voltage, in millivolts klondike-options arg Set klondike options clock temptarget See ASIC-README for more information regarding these. FPGA only options bfl-range Use nonce range on bitforce devices if supported See FGPA-README for more information regarding this. Cgminer should automatically find all of your Avalon ASIC, BFL ASIC, BitForce FPGAs, Icarus bitstream FPGAs, Klondike ASIC, ASICMINER usb block erupters, KnC ASICs, BaB ASICs, Hashfast ASICs, ModMiner FPGAs, BPMC/BGMC BF1 USB ASICs and Bi*fury USB ASICs. SETTING UP USB DEVICES WINDOWS On windows, the direct USB support requires the installation of a WinUSB driver (NOT the ftdi_sio driver), and attach it to the chosen USB device. When configuring your device, plug it in and wait for windows to attempt to install a driver on its own. It may think it has succeeded or failed but wait for it to finish regardless. This is NOT the driver you want installed. At this point you need to associate your device with the WinUSB driver. The easiest way to do this is to use the zadig utility which you must right click on and run as administrator. Then once you plug in your device you can choose the "list all devices" from the "option" menu and you should be able to see the device as something like "BitFORCE SHA256 SC". Choose the install or replace driver option and select WinUSB. You can either google for zadig or download it from the cgminer directory in the DOWNLOADS link above. When you first switch a device over to WinUSB with zadig and it shows that correctly on the left of the zadig window, but it still gives permission errors, you may need to unplug the USB miner and then plug it back in. Some users may need to reboot at this point. LINUX On linux, the direct USB support requires no drivers at all. However due to permissions issues, you may not be able to mine directly on the devices as a regular user without giving the user access to the device or by mining as root (administrator). In order to give your regular user access, you can make him a member of the plugdev group with the following commands sudo usermod -G plugdev -a `whoami` If your distribution does not have the plugdev group you can create it with sudo groupadd plugdev In order for the BFL devices to instantly be owned by the plugdev group and accessible by anyone from the plugdev group you can copy the file "01-cgminer.rules" from the cgminer archive into the /etc/udev/rules.d directory with the following command sudo cp 01-cgminer.rules /etc/udev/rules.d/ After this you can either manually restart udev and re-login, or more easily just reboot. OSX On OSX, like Linux, no drivers need to be installed. However some devices like the bitfury USB sticks automatically load a driver thinking they're a modem and the driver needs to be unloaded for cgminer to work sudo kextunload -b com.apple.driver.AppleUSBCDC sudo kextunload -b com.apple.driver.AppleUSBCDCACMData Advanced USB options The --usb option can restrict how many Avalon, BFL ASIC, BitForce FPGAs, Klondike ASIC, ModMiner FPGAs or Icarus bitstream FPGAs it finds --usb 1 2,1 3,1 4,1 * or --usb BAS 1,BFL 1,MMQ 0,ICA 0,KLN 0 or --usb 10 You can only use one of the above 3 The first version --usb 1 2,1 3,1 4,1 * allows you to select which devices to mine on with a list of USB bus_number device_address All other USB devices will be ignored Hotplug will also only look at the devices matching the list specified and find nothing new if they are all in use You can specify just the USB bus_number to find all devices like 1 * which means any devices on USB bus_number 1 This is useful if you unplug a device then plug it back in the same port, it usually reappears with the same bus_number but a different device_address You can see the list of all USB devices on linux with 'sudo lsusb' Cgminer will list the recognised USB devices with the '-n' option or the '--usb-dump 0' option The '--usb-dump N' option with a value of N greater than 0 will dump a lot of details about each recognised USB device If you wish to see all USB devices, include the --usb-list-all option The second version --usb BAS 1,BFL 1,MMQ 0,ICA 0,KLN 0 allows you to specify how many devices to choose based on each device driver cgminer has - there are currently 5 USB drivers BAS, BFL, MMQ. ICA KLN N.B. you can only specify which device driver to limit, not the type of each device, e.g. with BAS n you can limit how many BFL ASIC devices will be checked, but you cannot limit the number of each type of BFL ASIC Also note that the MMQ count is the number of MMQ backplanes you have not the number of MMQ FPGAs The third version --usb 10 means only use a maximum of 10 devices of any supported USB devices Once cgminer has 10 devices it will not configure any more and hotplug will not scan for any more If one of the 10 devices stops working, hotplug - if enabled, as is default will scan normally again until it has 10 devices --usb 0 will disable all USB I/O other than to initialise libusb NOTE The --device option will limit which devices are in use based on their numbering order of the total devices, so if you hotplug USB devices regularly, it will not reliably be the same devices. WHILE RUNNING The following options are available while running with a single keypress [P]ool management [S]ettings [D]isplay options [Q]uit P gives you Current pool management strategy Failover [F]ailover only disabled [A]dd pool [R]emove pool [D]isable pool [E]nable pool [C]hange management strategy [S]witch pool [I]nformation S gives you [Q]ueue 1 [S]cantime 60 [E]xpiry 120 [W]rite config file [C]gminer restart D gives you [N]ormal [C]lear [S]ilent mode (disable all output) [D]ebug off [P]er-device off [Q]uiet off [V]erbose off [R]PC debug off [W]orkTime details off co[M]pact off [L]og interval 5 Q quits the application. The running log shows output like this [2013-11-09 11 04 41] Accepted 01b3bde7 Diff 150/128 AVA 1 pool 0 [2013-11-09 11 04 49] Accepted 015df995 Diff 187/128 AVA 1 pool 0 [2013-11-09 11 04 50] Accepted 01163b68 Diff 236/128 AVA 1 pool 0 [2013-11-09 11 04 53] Accepted 9f745840 Diff 411/128 BAS 1 pool 0 The 8 byte hex value are the 1st nonzero bytes of the share being submitted to the pool. The 2 diff values are the actual difficulty target that share reached followed by the difficulty target the pool is currently asking for. Also many issues and FAQs are covered in the forum thread dedicated to this program, http //forum.bitcoin.org/index.php?topic=28402.0 The output line shows the following (5s) 1713.6 (avg) 1707.8 Mh/s | A 729 R 8 HW 0 WU 22.53/m Each column is as follows 5s A 5 second exponentially decaying average hash rate avg An all time average hash rate A The total difficulty of Accepted shares R The total difficulty of Rejected shares HW The number of HardWare errors WU The Work Utility defined as the number of diff1 shares work / minute (accepted or rejected). BAS 1 max 67C 3.27V | 62.29G/62.19Gh/s | A 140813 R 256 HW 2860 WU 852.0/m Each column is as follows Temperature (if supported) Fanspeed (if supported) A 5 second exponentially decaying average hash rate An all time average hash rate The total difficulty of accepted shares The total difficulty of rejected shares The number of hardware erorrs The work utility defined as the number of diff1 shares work / minute The cgminer status line shows ST 1 SS 0 NB 1 LW 8 GF 1 RF 1 ST is STaged work items (ready to use). SS is Stale Shares discarded (detected and not submitted so don't count as rejects) NB is New Blocks detected on the network LW is Locally generated Work items GF is Getwork Fail Occasions (server slow to provide work) RF is Remote Fail occasions (server slow to accept work) The block display shows Block 0074c5e482e34a506d2a051a... Started [17 17 22] Best share 2.71K This shows a short stretch of the current block, when the new block started, and the all time best difficulty share you've found since starting cgminer this time. MULTIPOOL FAILOVER STRATEGIES WITH MULTIPOOL A number of different strategies for dealing with multipool setups are available. Each has their advantages and disadvantages so multiple strategies are available by user choice, as per the following list FAILOVER The default strategy is failover. This means that if you input a number of pools, it will try to use them as a priority list, moving away from the 1st to the 2nd, 2nd to 3rd and so on. If any of the earlier pools recover, it will move back to the higher priority ones. ROUND ROBIN This strategy only moves from one pool to the next when the current one falls idle and makes no attempt to move otherwise. ROTATE This strategy moves at user-defined intervals from one active pool to the next, skipping pools that are idle. LOAD BALANCE This strategy sends work to all the pools on a quota basis. By default, all pools are allocated equal quotas unless specified with --quota. This apportioning of work is based on work handed out, not shares returned so is independent of difficulty targets or rejected shares. While a pool is disabled or dead, its quota is dropped until it is re-enabled. Quotas are forward looking, so if the quota is changed on the fly, it only affects future work. If all pools are set to zero quota or all pools with quota are dead, it will fall back to a failover mode. See quota below for more information. The failover-only flag has special meaning in combination with load-balance mode and it will distribute quota back to priority pool 0 from any pools that are unable to provide work for any reason so as to maintain quota ratios between the rest of the pools. BALANCE This strategy monitors the amount of difficulty 1 shares solved for each pool and uses it to try to end up doing the same amount of work for all pools. QUOTAS The load-balance multipool strategy works off a quota based scheduler. The quotas handed out by default are equal, but the user is allowed to specify any arbitrary ratio of quotas. For example, if all the quota values add up to 100, each quota value will be a percentage, but if 2 pools are specified and pool0 is given a quota of 1 and pool1 is given a quota of 9, pool0 will get 10% of the work and pool1 will get 90%. Quotas can be changed on the fly by the API, and do not act retrospectively. Setting a quota to zero will effectively disable that pool unless all other pools are disabled or dead. In that scenario, load-balance falls back to regular failover priority-based strategy. While a pool is dead, it loses its quota and no attempt is made to catch up when it comes back to life. To specify quotas on the command line, pools should be specified with a semicolon separated --quota(or -U) entry instead of --url. Pools specified with url are given a nominal quota value of 1 and entries can be mixed. For example url poola porta -u usernamea -p passa --quota "2;poolb portb" -u usernameb -p passb Will give poola 1/3 of the work and poolb 2/3 of the work. Writing configuration files with quotas is likewise supported. To use the above quotas in a configuration file they would be specified thus "pools" [ { "url" "poola porta", "user" "usernamea", "pass" "passa" }, { "quota" "2;poolb portb", "user" "usernameb", "pass" "passb" } ] LOGGING cgminer will log to stderr if it detects stderr is being redirected to a file. To enable logging simply add 2 logfile.txt to your command line and logfile.txt will contain the logged output at the log level you specify (normal, verbose, debug etc.) In other words if you would normally use ./cgminer -o xxx -u yyy -p zzz if you use ./cgminer -o xxx -u yyy -p zzz 2 logfile.txt it will log to a file called logfile.txt and otherwise work the same. There is also the -m option on linux which will spawn a command of your choice and pipe the output directly to that command. The WorkTime details 'debug' option adds details on the end of each line displayed for Accepted or Rejected work done. An example would be -00000059.ed4834a3 M X D 1.0 G 17 02 38 0.405 C 1.855 (2.995) W 3.440 (0.000) S 0.461 R 17 02 47 The first 2 hex codes are the previous block hash, the rest are reported in seconds unless stated otherwise The previous hash is followed by the getwork mode used M X where X is one of P Pool, T Test Pool, L LP or B Benchmark, then D d.ddd is the difficulty required to get a share from the work, then G hh mm ss n.nnn, which is when the getwork or LP was sent to the pool and the n.nnn is how long it took to reply, followed by 'O' on it's own if it is an original getwork, or 'C n.nnn' if it was a clone with n.nnn stating how long after the work was recieved that it was cloned, (m.mmm) is how long from when the original work was received until work started, W n.nnn is how long the work took to process until it was ready to submit, (m.mmm) is how long from ready to submit to actually doing the submit, this is usually 0.000 unless there was a problem with submitting the work, S n.nnn is how long it took to submit the completed work and await the reply, R hh mm ss is the actual time the work submit reply was received If you start cgminer with the --sharelog option, you can get detailed information for each share found. The argument to the option may be "-" for standard output (not advisable with the ncurses UI), any valid positive number for that file descriptor, or a filename. To log share data to a file named "share.log", you can use either ./cgminer --sharelog 50 -o xxx -u yyy -p zzz 50 share.log ./cgminer --sharelog share.log -o xxx -u yyy -p zzz For every share found, data will be logged in a CSV (Comma Separated Value) format timestamp,disposition,target,pool,dev,thr,sharehash,sharedata For example (this is wrapped, but it's all on one line for real) 1335313090,reject, ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, http //localhost 8337,GPU0,0, 6f983c918f3299b58febf95ec4d0c7094ed634bc13754553ec34fc3800000000, 00000001a0980aff4ce4a96d53f4b89a2d5f0e765c978640fe24372a000001c5 000000004a4366808f81d44f26df3d69d7dc4b3473385930462d9ab707b50498 f681634a4f1f63d01a0cd43fb338000000000080000000000000000000000000 0000000000000000000000000000000000000000000000000000000080020000 RPC API For RPC API details see the API-README file FAQ Q Can I mine on servers from different networks (eg xxxcoin and bitcoin) at the same time? A No, cgminer keeps a database of the block it's working on to ensure it does not work on stale blocks, and having different blocks from two networks would make it invalidate the work from each other. Q Can I configure cgminer to mine with different login credentials or pools for each separate device? A No. Q Can I put multiple pools in the config file? A Yes, check the example.conf file. Alternatively, set up everything either on the command line or via the menu after startup and choose settings- write config file and the file will be loaded one each startup. Q The build fails with gcc is unable to build a binary. A Remove the "-march=native" component of your CFLAGS as your version of gcc does not support it. Q Can you implement feature X? A I can, but time is limited, and people who donate are more likely to get their feature requests implemented. Q Work keeps going to my backup pool even though my primary pool hasn't failed? A Cgminer checks for conditions where the primary pool is lagging and will pass some work to the backup servers under those conditions. The reason for doing this is to try its absolute best to keep the devices working on something useful and not risk idle periods. You can disable this behaviour with the option --failover-only. Q Is this a virus? A Cgminer is being packaged with other trojan scripts and some antivirus software is falsely accusing cgminer.exe as being the actual virus, rather than whatever it is being packaged with. If you installed cgminer yourself, then you do not have a virus on your computer. Complain to your antivirus software company. They seem to be flagging even source code now from cgminer as viruses, even though text source files can't do anything by themself. Q Can you modify the display to include more of one thing in the output and less of another, or can you change the quiet mode or can you add yet another output mode? A Everyone will always have their own view of what's important to monitor. The defaults are very sane and I have very little interest in changing this any further. Q What are the best parameters to pass for X pool/hardware/device. A Virtually always, the DEFAULT parameters give the best results. Most user defined settings lead to worse performance. Q What happened to CPU and GPU mining? A Their efficiency makes them irrelevant in the bitcoin mining world today and the author has no interest in supporting alternative coins that are better mined by these devices. Q GUI version? A No. The RPC interface makes it possible for someone else to write one though. Q I'm having an issue. What debugging information should I provide? A Start cgminer with your regular commands and add -D -T --verbose and provide the full startup output and a summary of your hardware and operating system. Q Why don't you provide win64 builds? A Win32 builds work everywhere and there is precisely zero advantage to a 64 bit build on windows. Q Is it faster to mine on windows or linux? A It makes no difference in terms of performance. It comes down to choice of operating system for their various features and your comfort level. However linux is the primary development platform and is virtually guaranteed to be more stable. Q My network gets slower and slower and then dies for a minute? A; Try the --net-delay option if you are on a getwork or GBT server. Q How do I tune for p2pool? A It is also recommended to use --failover-only since the work is effectively like a different block chain, and not enabling --no-submit-stale. If mining with a BFL (fpga) minirig, it is worth adding the --bfl-range option. Q I run PHP on windows to access the API with the example miner.php. Why does it fail when php is installed properly but I only get errors about Sockets not working in the logs? A http //us.php.net/manual/en/sockets.installation.php Q What is a PGA? A At the moment, cgminer supports 3 FPGAs BitForce, Icarus and ModMiner. They are Field-Programmable Gate Arrays that have been programmed to do Bitcoin mining. Since the acronym needs to be only 3 characters, the "Field-" part has been skipped. Q What is an ASIC? A They are Application Specify Integrated Circuit devices and provide the highest performance per unit power due to being dedicated to only one purpose. Q Can I mine scrypt with FPGAs or ASICs? A No. Q What is stratum and how do I use it? A Stratum is a protocol designed for pooled mining in such a way as to minimise the amount of network communications, yet scale to hardware of any speed. With versions of cgminer 2.8.0+, if a pool has stratum support, cgminer will automatically detect it and switch to the support as advertised if it can. If you input the stratum port directly into your configuration, or use the special prefix "stratum+tcp //" instead of "http //", cgminer will ONLY try to use stratum protocol mining. The advantages of stratum to the miner are no delays in getting more work for the miner, less rejects across block changes, and far less network communications for the same amount of mining hashrate. If you do NOT wish cgminer to automatically switch to stratum protocol even if it is detected, add the --fix-protocol option. Q Why don't the statistics add up Accepted, Rejected, Stale, Hardware Errors, Diff1 Work, etc. when mining greater than 1 difficulty shares? A As an example, if you look at 'Difficulty Accepted' in the RPC API, the number of difficulty shares accepted does not usually exactly equal the amount of work done to find them. If you are mining at 8 difficulty, then you would expect on average to find one 8 difficulty share, per 8 single difficulty shares found. However, the number is actually random and converges over time, it is an average, not an exact value, thus you may find more or less than the expected average. Q My keyboard input momentarily pauses or repeats keys every so often on windows while mining? A The USB implementation on windows can be very flaky on some hardware and every time cgminer looks for new hardware to hotplug it it can cause these sorts of problems. You can disable hotplug with hotplug 0 Q What should my Work Utility (WU) be? A Work utility is the product of hashrate * luck and only stabilises over a very long period of time. Assuming all your work is valid work, bitcoin mining should produce a work utility of approximately 1 per 71.6MH. This means at 5GH you should have a WU of 5000 / 71.6 or ~ 69. You cannot make your machine do "better WU" than this - it is luck related. However you can make it much worse if your machine produces a lot of hardware errors producing invalid work. This code is provided entirely free of charge by the programmer in his spare time so donations would be greatly appreciated. Please consider donating to the address below. Con Kolivas kernel@kolivas.org 15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ